diff options
Diffstat (limited to 'proofs')
| -rw-r--r-- | proofs/refiner.ml | 4 | ||||
| -rw-r--r-- | proofs/typing_ev.ml | 9 |
2 files changed, 8 insertions, 5 deletions
diff --git a/proofs/refiner.ml b/proofs/refiner.ml index 89aa184274..834ee67343 100644 --- a/proofs/refiner.ml +++ b/proofs/refiner.ml @@ -159,7 +159,7 @@ let refiner = function subproof = Some hidden_proof; ref = Some(r,spfl) })) - | ((Context ctxt) as r) -> + | (Context ctxt) as r -> (fun goal_sigma -> let gl = goal_sigma.it in let sg = mk_goal ctxt gl.evar_env gl.evar_concl in @@ -174,7 +174,7 @@ let refiner = function (* [Local_constraints lc] makes the local constraints be [lc] *) - | ((Local_constraints lc) as r) -> + | (Local_constraints lc) as r -> (fun goal_sigma -> let gl = goal_sigma.it in let ctxt = gl.evar_info in diff --git a/proofs/typing_ev.ml b/proofs/typing_ev.ml index 54a9d42dce..5e48153719 100644 --- a/proofs/typing_ev.ml +++ b/proofs/typing_ev.ml @@ -22,10 +22,13 @@ type 'a mach_flags = { let rec execute mf env sigma cstr = match kind_of_term cstr with - | IsMeta _ -> - anomaly "the kernel does not understand metas" + | IsMeta n -> + error "execute: found a non-instanciated goal" + | IsEvar _ -> - anomaly "the kernel does not understand existential variables" + let ty = type_of_existential env sigma cstr in + let jty = execute mf env sigma ty in + { uj_val = cstr; uj_type = ty; uj_kind = jty.uj_type } | IsRel n -> relative env n |
