alias id "nat" = "cic:/Coq/Init/Datatypes/nat.ind#xpointer(1/1)".
alias id "plus_comm" = "cic:/Coq/Arith/Plus/plus_comm.con".
-theorem a :
- \forall A:Set.
- \forall x,y : A.
- not (x = y) \to not(y = x).
-intros.
-unfold not. (* simplify. *)
-intro. apply H.
-symmetry.
-exact H1.
-qed.
-
theorem t: let f \def \lambda x,y. x y in f (\lambda x.S x) O = S O.
- intros. simplify. change in \vdash (? ? (? %) ?) with O.
+ intros. simplify. change in \vdash (? ? (? ? %) ?) with O.
reflexivity. qed.
-
theorem X: \forall x:nat. let myplus \def plus x in myplus (S O) = S x.
intros. simplify. change in \vdash (? ? (% ?) ?) with (plus x).
rewrite > plus_comm. reflexivity. qed.
-
+
theorem R: \forall x:nat. let uno \def x + O in S O + uno = 1 + x.
intros. simplify.
change in \vdash (? ? (? %) ?) with (x + O).
let module S = CicSubstitution in
function
C.Rel n as t ->
- (try
- match List.nth context (n-1) with
- Some (_,C.Decl _) -> if l = [] then t else C.Appl (t::l)
- | Some (_,C.Def (bo,_)) ->
- try_delta_expansion context l t (S.lift n bo)
- | None -> raise RelToHiddenHypothesis
- with
- Failure _ -> assert false)
+ (* we never perform delta expansion automatically *)
+ if l = [] then t else C.Appl (t::l)
| C.Var (uri,exp_named_subst) ->
let exp_named_subst' =
reduceaux_exp_named_subst context l exp_named_subst