let simple_check1 value_with_constraints =
begin
let evalue, st = value_with_constraints in
let sigma = Evd.from_ctx st in
(* This is reverse engineered from vernacentries.ml *)
(* The point of renaming is to make sure the bound names printed by Check
can be re-used in `apply with` tactics that use bound names to
refer to arguments. *)
let j = Environ.on_judgment EConstr.of_constr
(Arguments_renaming.rename_typing (Global.env())
(EConstr.to_constr sigma evalue)) in
let {Environ.uj_type=x}=j in x
end
let simple_check2 value_with_constraints =
let evalue, st = value_with_constraints in
let sigma = Evd.from_ctx st in
(* This version should be preferred if bound variable names are not so
important, you want to really verify that the input is well-typed,
and if you want to obtain the type. *)
(* Note that the output value is a pair containing a new evar_map:
typing will fill out blanks in the term by add evar bindings. *)
Typing.type_of (Global.env()) sigma evalue
let simple_check3 value_with_constraints =
let evalue, st = value_with_constraints in
let sigma = Evd.from_ctx st in
(* This version should be preferred if bound variable names are not so
important and you already expect the input to have been type-checked
before. Set ~lax to false if you want an anomaly to be raised in
case of a type error. Otherwise a ReTypeError exception is raised. *)
Retyping.get_type_of ~lax:true (Global.env()) sigma evalue
¤ Dauer der Verarbeitung: 0.1 Sekunden
(vorverarbeitet)
¤
|
schauen Sie vor die Tür
Fenster
Die Firma ist wie angegeben erreichbar.
Die farbliche Syntaxdarstellung ist noch experimentell.
|