NCicMetaSubst.saturate ~delta:max_int [] ctx ty 0
in
*)
- let ctx, ty = intros ty in
+(* let ctx, ty = intros ty in *)
let whd ty =
match ty with
| NCic.Appl [eq;t;a;b] ->
let metasenv, subst =
try
(* prerr_endline ("INIZIO: " ^ NUri.string_of_uri u); *)
- NCicUnification.unify menv [] ctx ity sty
+ NCicUnification.unify menv [] ctx ity pty
with
| NCicUnification.Uncertain msg
| NCicUnification.UnificationFailure msg
(Printf.sprintf "RESULT OF UNIF\n%s\n%s == %s\n"
(NCicPp.ppcontext ~metasenv:menv ~subst:[] ctx)
(NCicPp.ppterm ~metasenv:menv ~subst:[] ~context:ctx ity)
- (NCicPp.ppterm ~metasenv:menv ~subst:[] ~context:ctx sty));
+ (NCicPp.ppterm ~metasenv:menv ~subst:[] ~context:ctx pty));
[], []
| Sys.Break -> [],[]
in
- if (NCicReduction.are_convertible ~subst ctx ity sty)
+ if (NCicReduction.are_convertible ~subst ctx ity pty)
then
prerr_endline ("OK: " ^ NUri.string_of_uri u)
else
definition hole : ∀A:Type.A → A ≝ λA.λx.x.
-inductive pippo (T:Type) (x:T) : Prop ≝ .
-
-axiom A: Type.
-axiom B:A.
-
-axiom foo : \forall x: (hole ? A).pippo (hole ? A) x.
-
-axiom foo: (λx,y:A. pippo (hole ? A) x y)
- (hole ? B) (hole ? B).
-
-axiom foo: λx:(hole ? Type).λy:(hole ? Type). pippo (hole ? Type) x y.
-
axiom foo: (λx,y.(λz. z x + z (x+y)) (λw:nat.hole ? w)) = λx,y.x. (* KO, delift rels only *)
axiom foo: (λx,y.(λz. z (x+y) + z x) (λw:nat.hole ? w)) = λx,y.x. (* OK *)