From eac472d0fa6409b29caf37b5194227cb8e3f0750 Mon Sep 17 00:00:00 2001 From: Nikhil Swamy Date: Wed, 2 Oct 2024 16:11:56 -0700 Subject: [PATCH] track effects when instantiating type arguments when generating ML, to prevent mistaken erasure (cf. #3473) --- .../generated/FStar_Algebra_Monoid.ml | 6 +- .../fstar-lib/generated/FStar_CheckedFiles.ml | 2 +- .../generated/FStar_Class_TotalOrder_Raw.ml | 12 +- ocaml/fstar-lib/generated/FStar_Errors.ml | 7 +- .../generated/FStar_Extraction_ML_Code.ml | 22 +- .../generated/FStar_Extraction_ML_Modul.ml | 7 +- .../generated/FStar_Extraction_ML_Syntax.ml | 15 +- .../generated/FStar_Extraction_ML_Term.ml | 1152 +++++++------ .../generated/FStar_Extraction_ML_UEnv.ml | 123 +- ocaml/fstar-lib/generated/FStar_Options.ml | 1509 ++++++++--------- .../FStar_Reflection_V1_Constants.ml | 121 +- .../FStar_Reflection_V1_Interpreter.ml | 486 +++--- .../FStar_Reflection_V2_Constants.ml | 177 +- .../FStar_Reflection_V2_Interpreter.ml | 2 +- .../generated/FStar_SMTEncoding_Solver.ml | 2 +- .../fstar-lib/generated/FStar_Syntax_Visit.ml | 8 +- .../generated/FStar_Tactics_Hooks.ml | 10 +- .../generated/FStar_Tactics_V1_Primops.ml | 602 +++---- .../generated/FStar_Tactics_V2_Primops.ml | 1084 ++++++------ .../generated/FStar_TypeChecker_Normalize.ml | 2 +- .../generated/FStar_TypeChecker_Rel.ml | 6 +- .../generated/FStar_TypeChecker_Tc.ml | 2 +- src/extraction/FStar.Extraction.ML.Code.fst | 17 +- src/extraction/FStar.Extraction.ML.Code.fsti | 2 + src/extraction/FStar.Extraction.ML.Syntax.fst | 10 +- .../FStar.Extraction.ML.Syntax.fsti | 4 +- src/extraction/FStar.Extraction.ML.Term.fst | 68 +- src/extraction/FStar.Extraction.ML.UEnv.fst | 8 +- src/extraction/FStar.Extraction.ML.UEnv.fsti | 3 +- 29 files changed, 2797 insertions(+), 2672 deletions(-) diff --git a/ocaml/fstar-lib/generated/FStar_Algebra_Monoid.ml b/ocaml/fstar-lib/generated/FStar_Algebra_Monoid.ml index 8acc87020c2..133c0713185 100644 --- a/ocaml/fstar-lib/generated/FStar_Algebra_Monoid.ml +++ b/ocaml/fstar-lib/generated/FStar_Algebra_Monoid.ml @@ -57,13 +57,13 @@ let intro_monoid_morphism : 'a monoid -> 'b monoid -> ('a, 'b, unit, unit, unit) monoid_morphism = fun f -> fun ma -> fun mb -> MonoidMorphism ((), ()) let (embed_nat_int : Prims.nat -> Prims.int) = fun n -> n -let (uu___181 : (Prims.nat, Prims.int, unit, unit, unit) monoid_morphism) = +let (uu___0 : (Prims.nat, Prims.int, unit, unit, unit) monoid_morphism) = intro_monoid_morphism embed_nat_int nat_plus_monoid int_plus_monoid type 'p neg = unit -let (uu___183 : (unit, unit, unit neg, unit, unit) monoid_morphism) = +let (uu___1 : (unit, unit, unit neg, unit, unit) monoid_morphism) = intro_monoid_morphism (fun uu___ -> ()) conjunction_monoid disjunction_monoid -let (uu___192 : (unit, unit, unit neg, unit, unit) monoid_morphism) = +let (uu___2 : (unit, unit, unit neg, unit, unit) monoid_morphism) = intro_monoid_morphism (fun uu___ -> ()) disjunction_monoid conjunction_monoid type ('m, 'a, 'mult, 'act) mult_act_lemma = unit diff --git a/ocaml/fstar-lib/generated/FStar_CheckedFiles.ml b/ocaml/fstar-lib/generated/FStar_CheckedFiles.ml index 3acfc601c03..d50d368f259 100644 --- a/ocaml/fstar-lib/generated/FStar_CheckedFiles.ml +++ b/ocaml/fstar-lib/generated/FStar_CheckedFiles.ml @@ -83,7 +83,7 @@ let (uu___is_Valid : tc_result_t -> Prims.bool) = fun projectee -> match projectee with | Valid _0 -> true | uu___ -> false let (__proj__Valid__item___0 : tc_result_t -> Prims.string) = fun projectee -> match projectee with | Valid _0 -> _0 -let (uu___44 : tc_result_t FStar_Class_Show.showable) = +let (uu___0 : tc_result_t FStar_Class_Show.showable) = { FStar_Class_Show.show = (fun uu___ -> diff --git a/ocaml/fstar-lib/generated/FStar_Class_TotalOrder_Raw.ml b/ocaml/fstar-lib/generated/FStar_Class_TotalOrder_Raw.ml index f7f7f7b778c..302ec669bc1 100644 --- a/ocaml/fstar-lib/generated/FStar_Class_TotalOrder_Raw.ml +++ b/ocaml/fstar-lib/generated/FStar_Class_TotalOrder_Raw.ml @@ -25,8 +25,8 @@ let op_Greater_Equals : 't . 't totalorder -> 't -> 't -> Prims.bool = fun uu___ -> fun x -> fun y -> (compare uu___ x y) <> FStar_Order.Lt let op_Less_Greater : 't . 't totalorder -> 't -> 't -> Prims.bool = fun uu___ -> fun x -> fun y -> (compare uu___ x y) <> FStar_Order.Eq -let (uu___54 : Prims.int totalorder) = { compare = FStar_Order.compare_int } -let (uu___55 : Prims.bool totalorder) = +let (uu___0 : Prims.int totalorder) = { compare = FStar_Order.compare_int } +let (uu___1 : Prims.bool totalorder) = { compare = (fun b1 -> @@ -44,8 +44,8 @@ let totalorder_pair : { compare = (fun uu___ -> - fun uu___1 -> - match (uu___, uu___1) with + fun uu___2 -> + match (uu___, uu___2) with | ((xa, xb), (ya, yb)) -> (match compare d1 xa ya with | FStar_Order.Lt -> FStar_Order.Lt @@ -76,8 +76,8 @@ let rec raw_compare_lists : fun l2 -> match (l1, l2) with | ([], []) -> FStar_Order.Eq - | ([], uu___::uu___1) -> FStar_Order.Lt - | (uu___::uu___1, []) -> FStar_Order.Gt + | ([], uu___::uu___2) -> FStar_Order.Lt + | (uu___::uu___2, []) -> FStar_Order.Gt | (x::xs, y::ys) -> (match compare d x y with | FStar_Order.Lt -> FStar_Order.Lt diff --git a/ocaml/fstar-lib/generated/FStar_Errors.ml b/ocaml/fstar-lib/generated/FStar_Errors.ml index 353698f060a..e40eb02f0ce 100644 --- a/ocaml/fstar-lib/generated/FStar_Errors.ml +++ b/ocaml/fstar-lib/generated/FStar_Errors.ml @@ -778,7 +778,7 @@ let (set_option_warning_callback_range : FStar_Compiler_Range_Type.range FStar_Pervasives_Native.option -> unit) = fun ropt -> FStar_Options.set_option_warning_callback (warn_unsafe_options ropt) -let (uu___369 : +let (uu___0 : (((Prims.string -> FStar_Errors_Codes.error_setting Prims.list) -> unit) * (unit -> FStar_Errors_Codes.error_setting Prims.list))) = @@ -824,11 +824,10 @@ let (uu___369 : (set_callbacks, get_error_flags) let (t_set_parse_warn_error : (Prims.string -> FStar_Errors_Codes.error_setting Prims.list) -> unit) = - match uu___369 with + match uu___0 with | (t_set_parse_warn_error1, error_flags) -> t_set_parse_warn_error1 let (error_flags : unit -> FStar_Errors_Codes.error_setting Prims.list) = - match uu___369 with - | (t_set_parse_warn_error1, error_flags1) -> error_flags1 + match uu___0 with | (t_set_parse_warn_error1, error_flags1) -> error_flags1 let (set_parse_warn_error : (Prims.string -> FStar_Errors_Codes.error_setting Prims.list) -> unit) = t_set_parse_warn_error diff --git a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Code.ml b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Code.ml index 544b1527b85..7ef1639c852 100644 --- a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Code.ml +++ b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Code.ml @@ -446,6 +446,12 @@ let (string_of_mlconstant : | uu___ -> FStar_Compiler_Effect.failwith "TODO: extract integer constants properly into OCaml" +let (string_of_etag : FStar_Extraction_ML_Syntax.e_tag -> Prims.string) = + fun uu___ -> + match uu___ with + | FStar_Extraction_ML_Syntax.E_PURE -> "" + | FStar_Extraction_ML_Syntax.E_ERASABLE -> "Erased" + | FStar_Extraction_ML_Syntax.E_IMPURE -> "Impure" let rec (doc_of_mltype' : FStar_Extraction_ML_Syntax.mlsymbol -> level -> FStar_Extraction_ML_Syntax.mlty -> doc) @@ -485,12 +491,12 @@ let rec (doc_of_mltype' : parens uu___1 in let name1 = ptsym currentModule name in let uu___ = reduce1 [args1; text name1] in hbox uu___ - | FStar_Extraction_ML_Syntax.MLTY_Fun (t1, uu___, t2) -> + | FStar_Extraction_ML_Syntax.MLTY_Fun (t1, et, t2) -> let d1 = doc_of_mltype currentModule (t_prio_fun, Left) t1 in let d2 = doc_of_mltype currentModule (t_prio_fun, Right) t2 in - let uu___1 = - let uu___2 = reduce1 [d1; text " -> "; d2] in hbox uu___2 in - maybe_paren outer t_prio_fun uu___1 + let uu___ = + let uu___1 = reduce1 [d1; text "->"; d2] in hbox uu___1 in + maybe_paren outer t_prio_fun uu___ | FStar_Extraction_ML_Syntax.MLTY_Top -> let uu___ = FStar_Extraction_ML_Util.codegen_fsharp () in if uu___ then text "obj" else text "Obj.t" @@ -1430,4 +1436,10 @@ let (string_of_mlty : pretty Prims.int_zero doc1 let (showable_mlexpr : FStar_Extraction_ML_Syntax.mlexpr FStar_Class_Show.showable) = - { FStar_Class_Show.show = (string_of_mlexpr ([], "")) } \ No newline at end of file + { FStar_Class_Show.show = (string_of_mlexpr ([], "")) } +let (showable_mlty : + FStar_Extraction_ML_Syntax.mlty FStar_Class_Show.showable) = + { FStar_Class_Show.show = (string_of_mlty ([], "")) } +let (showable_etag : + FStar_Extraction_ML_Syntax.e_tag FStar_Class_Show.showable) = + { FStar_Class_Show.show = string_of_etag } \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Modul.ml b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Modul.ml index 90976fb772b..2fe120d3f45 100644 --- a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Modul.ml +++ b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Modul.ml @@ -1224,12 +1224,13 @@ let (extract_reifiable_effect : (match uu___2 with | { FStar_Extraction_ML_UEnv.exp_b_name = uu___3; FStar_Extraction_ML_UEnv.exp_b_expr = uu___4; - FStar_Extraction_ML_UEnv.exp_b_tscheme = tysc;_} -> - let uu___5 = + FStar_Extraction_ML_UEnv.exp_b_tscheme = tysc; + FStar_Extraction_ML_UEnv.exp_b_eff = uu___5;_} -> + let uu___6 = FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.MLTY_Top (FStar_Extraction_ML_Syntax.MLE_Name mlp) in - (uu___5, tysc)) + (uu___6, tysc)) | uu___2 -> let uu___3 = let uu___4 = diff --git a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Syntax.ml b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Syntax.ml index 499e8ad75c4..3d1a2f85e51 100644 --- a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Syntax.ml +++ b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Syntax.ml @@ -779,19 +779,20 @@ let (ty_param_names : ty_param Prims.list -> Prims.string Prims.list) = (fun uu___ -> match uu___ with | { ty_param_name; ty_param_attrs = uu___1;_} -> ty_param_name) tys -let (push_unit : mltyscheme -> mltyscheme) = - fun ts -> - let uu___ = ts in - match uu___ with | (vs, ty) -> (vs, (MLTY_Fun (ml_unit_ty, E_PURE, ty))) -let (pop_unit : mltyscheme -> mltyscheme) = +let (push_unit : e_tag -> mltyscheme -> mltyscheme) = + fun eff -> + fun ts -> + let uu___ = ts in + match uu___ with | (vs, ty) -> (vs, (MLTY_Fun (ml_unit_ty, eff, ty))) +let (pop_unit : mltyscheme -> (e_tag * mltyscheme)) = fun ts -> let uu___ = ts in match uu___ with | (vs, ty) -> (match ty with - | MLTY_Fun (l, E_PURE, t) -> + | MLTY_Fun (l, eff, t) -> if l = ml_unit_ty - then (vs, t) + then (eff, (vs, t)) else FStar_Compiler_Effect.failwith "unexpected: pop_unit: domain was not unit" diff --git a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Term.ml b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Term.ml index 13ff460f260..3f18501bf5c 100644 --- a/ocaml/fstar-lib/generated/FStar_Extraction_ML_Term.ml +++ b/ocaml/fstar-lib/generated/FStar_Extraction_ML_Term.ml @@ -723,75 +723,78 @@ let (fresh_binders : let (instantiate_maybe_partial : FStar_Extraction_ML_UEnv.uenv -> FStar_Extraction_ML_Syntax.mlexpr -> - FStar_Extraction_ML_Syntax.mltyscheme -> - FStar_Extraction_ML_Syntax.mlty Prims.list -> - (FStar_Extraction_ML_Syntax.mlexpr * - FStar_Extraction_ML_Syntax.e_tag * - FStar_Extraction_ML_Syntax.mlty)) + FStar_Extraction_ML_Syntax.e_tag -> + FStar_Extraction_ML_Syntax.mltyscheme -> + FStar_Extraction_ML_Syntax.mlty Prims.list -> + (FStar_Extraction_ML_Syntax.mlexpr * + FStar_Extraction_ML_Syntax.e_tag * + FStar_Extraction_ML_Syntax.mlty)) = fun g -> fun e -> - fun s -> - fun tyargs -> - let uu___ = s in - match uu___ with - | (vars, t) -> - let n_vars = FStar_Compiler_List.length vars in - let n_args = FStar_Compiler_List.length tyargs in - if n_args = n_vars - then - (if n_args = Prims.int_zero - then (e, FStar_Extraction_ML_Syntax.E_PURE, t) - else - (let ts = instantiate_tyscheme (vars, t) tyargs in - let tapp = - { - FStar_Extraction_ML_Syntax.expr = - (FStar_Extraction_ML_Syntax.MLE_TApp (e, tyargs)); - FStar_Extraction_ML_Syntax.mlty = ts; - FStar_Extraction_ML_Syntax.loc = - (e.FStar_Extraction_ML_Syntax.loc) - } in - (tapp, FStar_Extraction_ML_Syntax.E_PURE, ts))) - else - if n_args < n_vars + fun eff -> + fun s -> + fun tyargs -> + let uu___ = s in + match uu___ with + | (vars, t) -> + let n_vars = FStar_Compiler_List.length vars in + let n_args = FStar_Compiler_List.length tyargs in + if n_args = n_vars then - (let extra_tyargs = - let uu___2 = FStar_Compiler_Util.first_N n_args vars in - match uu___2 with - | (uu___3, rest_vars) -> - FStar_Compiler_List.map - (fun uu___4 -> - FStar_Extraction_ML_Syntax.MLTY_Erased) - rest_vars in - let tyargs1 = - FStar_Compiler_List.op_At tyargs extra_tyargs in - let ts = instantiate_tyscheme (vars, t) tyargs1 in - let tapp = - { - FStar_Extraction_ML_Syntax.expr = - (FStar_Extraction_ML_Syntax.MLE_TApp (e, tyargs1)); - FStar_Extraction_ML_Syntax.mlty = ts; - FStar_Extraction_ML_Syntax.loc = - (e.FStar_Extraction_ML_Syntax.loc) - } in - let t1 = - FStar_Compiler_List.fold_left - (fun out -> - fun t2 -> - FStar_Extraction_ML_Syntax.MLTY_Fun - (t2, FStar_Extraction_ML_Syntax.E_PURE, out)) - ts extra_tyargs in - let uu___2 = fresh_binders extra_tyargs g in - match uu___2 with - | (vs_ts, g1) -> - let f = - FStar_Extraction_ML_Syntax.with_ty t1 - (FStar_Extraction_ML_Syntax.MLE_Fun (vs_ts, tapp)) in - (f, FStar_Extraction_ML_Syntax.E_PURE, t1)) + (if n_args = Prims.int_zero + then (e, eff, t) + else + (let ts = instantiate_tyscheme (vars, t) tyargs in + let tapp = + { + FStar_Extraction_ML_Syntax.expr = + (FStar_Extraction_ML_Syntax.MLE_TApp (e, tyargs)); + FStar_Extraction_ML_Syntax.mlty = ts; + FStar_Extraction_ML_Syntax.loc = + (e.FStar_Extraction_ML_Syntax.loc) + } in + (tapp, eff, ts))) else - FStar_Compiler_Effect.failwith - "Impossible: instantiate_maybe_partial called with too many arguments" + if n_args < n_vars + then + (let extra_tyargs = + let uu___2 = FStar_Compiler_Util.first_N n_args vars in + match uu___2 with + | (uu___3, rest_vars) -> + FStar_Compiler_List.map + (fun uu___4 -> + FStar_Extraction_ML_Syntax.MLTY_Erased) + rest_vars in + let tyargs1 = + FStar_Compiler_List.op_At tyargs extra_tyargs in + let ts = instantiate_tyscheme (vars, t) tyargs1 in + let tapp = + { + FStar_Extraction_ML_Syntax.expr = + (FStar_Extraction_ML_Syntax.MLE_TApp (e, tyargs1)); + FStar_Extraction_ML_Syntax.mlty = ts; + FStar_Extraction_ML_Syntax.loc = + (e.FStar_Extraction_ML_Syntax.loc) + } in + let t1 = + FStar_Compiler_List.fold_left + (fun out -> + fun t2 -> + FStar_Extraction_ML_Syntax.MLTY_Fun + (t2, FStar_Extraction_ML_Syntax.E_PURE, out)) + ts extra_tyargs in + let uu___2 = fresh_binders extra_tyargs g in + match uu___2 with + | (vs_ts, g1) -> + let f = + FStar_Extraction_ML_Syntax.with_ty t1 + (FStar_Extraction_ML_Syntax.MLE_Fun + (vs_ts, tapp)) in + (f, eff, t1)) + else + FStar_Compiler_Effect.failwith + "Impossible: instantiate_maybe_partial called with too many arguments" let (eta_expand : FStar_Extraction_ML_UEnv.uenv -> FStar_Extraction_ML_Syntax.mlty -> @@ -1720,7 +1723,8 @@ let rec (extract_one_pat : FStar_Extraction_ML_Syntax.MLE_Name n; FStar_Extraction_ML_Syntax.mlty = uu___4; FStar_Extraction_ML_Syntax.loc = uu___5;_}; - FStar_Extraction_ML_UEnv.exp_b_tscheme = ttys;_} + FStar_Extraction_ML_UEnv.exp_b_tscheme = ttys; + FStar_Extraction_ML_UEnv.exp_b_eff = uu___6;_} -> (n, ttys) | FStar_Pervasives_Native.Some uu___3 -> FStar_Compiler_Effect.failwith "Expected a constructor" @@ -2264,6 +2268,9 @@ let rec (extract_lb_sig : let uu___5 = FStar_Syntax_Subst.open_comp bs c in (match uu___5 with | (bs1, c1) -> + let etag_of_comp c2 = + effect_as_etag g + (FStar_Syntax_Util.comp_effect_name c2) in let uu___6 = let uu___7 = FStar_Compiler_Util.prefix_until @@ -2272,323 +2279,335 @@ let rec (extract_lb_sig : Prims.op_Negation uu___8) bs1 in match uu___7 with | FStar_Pervasives_Native.None -> - (bs1, (FStar_Syntax_Util.comp_result c1)) + let uu___8 = etag_of_comp c1 in + (bs1, uu___8, + (FStar_Syntax_Util.comp_result c1)) | FStar_Pervasives_Native.Some (bs2, b, rest) -> let uu___8 = FStar_Syntax_Util.arrow (b :: rest) c1 in - (bs2, uu___8) in + (bs2, FStar_Extraction_ML_Syntax.E_PURE, + uu___8) in (match uu___6 with - | (tbinders, tbody) -> - let n_tbinders = - FStar_Compiler_List.length tbinders in - let lbdef1 = - let uu___7 = normalize_abs lbdef in - FStar_Syntax_Util.unmeta uu___7 in - let tbinders_as_ty_params env = - FStar_Compiler_List.map - (fun uu___7 -> - match uu___7 with - | { FStar_Syntax_Syntax.binder_bv = x; - FStar_Syntax_Syntax.binder_qual = - uu___8; - FStar_Syntax_Syntax.binder_positivity - = uu___9; - FStar_Syntax_Syntax.binder_attrs = - binder_attrs;_} - -> - let uu___10 = - let uu___11 = - FStar_Extraction_ML_UEnv.lookup_ty - env x in - uu___11.FStar_Extraction_ML_UEnv.ty_b_name in - let uu___11 = - FStar_Compiler_List.map - (fun attr -> - let uu___12 = - term_as_mlexpr g attr in - match uu___12 with - | (e, uu___13, uu___14) -> e) - binder_attrs in - { - FStar_Extraction_ML_Syntax.ty_param_name + | (tbinders, eff_body, tbody) -> + (FStar_Extraction_ML_UEnv.debug g + (fun uu___8 -> + let uu___9 = + FStar_Class_Show.show + FStar_Syntax_Print.showable_term tbody in + FStar_Compiler_Util.print1 + "Extract LB SIG: %s\n" uu___9); + (let n_tbinders = + FStar_Compiler_List.length tbinders in + let lbdef1 = + let uu___8 = normalize_abs lbdef in + FStar_Syntax_Util.unmeta uu___8 in + let tbinders_as_ty_params env = + FStar_Compiler_List.map + (fun uu___8 -> + match uu___8 with + | { FStar_Syntax_Syntax.binder_bv = x; + FStar_Syntax_Syntax.binder_qual = + uu___9; + FStar_Syntax_Syntax.binder_positivity = uu___10; - FStar_Extraction_ML_Syntax.ty_param_attrs - = uu___11 - }) in - (match lbdef1.FStar_Syntax_Syntax.n with - | FStar_Syntax_Syntax.Tm_abs - { FStar_Syntax_Syntax.bs = bs2; - FStar_Syntax_Syntax.body = body; - FStar_Syntax_Syntax.rc_opt = copt;_} - -> - let uu___7 = - FStar_Syntax_Subst.open_term bs2 body in - (match uu___7 with - | (bs3, body1) -> - if - n_tbinders <= - (FStar_Compiler_List.length bs3) - then - let uu___8 = - FStar_Compiler_Util.first_N - n_tbinders bs3 in - (match uu___8 with - | (targs, rest_args) -> - let expected_source_ty = - let s = - FStar_Compiler_List.map2 - (fun uu___9 -> - fun uu___10 -> - match (uu___9, - uu___10) - with - | ({ - FStar_Syntax_Syntax.binder_bv - = x; - FStar_Syntax_Syntax.binder_qual - = uu___11; - FStar_Syntax_Syntax.binder_positivity - = uu___12; - FStar_Syntax_Syntax.binder_attrs - = uu___13;_}, - { - FStar_Syntax_Syntax.binder_bv - = y; - FStar_Syntax_Syntax.binder_qual - = uu___14; - FStar_Syntax_Syntax.binder_positivity - = uu___15; - FStar_Syntax_Syntax.binder_attrs - = uu___16;_}) - -> - let uu___17 = - let uu___18 = - FStar_Syntax_Syntax.bv_to_name - y in - (x, uu___18) in - FStar_Syntax_Syntax.NT - uu___17) - tbinders targs in - FStar_Syntax_Subst.subst s - tbody in - let env = - FStar_Compiler_List.fold_left - (fun env1 -> - fun uu___9 -> - match uu___9 with - | { - FStar_Syntax_Syntax.binder_bv - = a; - FStar_Syntax_Syntax.binder_qual - = uu___10; - FStar_Syntax_Syntax.binder_positivity - = uu___11; - FStar_Syntax_Syntax.binder_attrs - = uu___12;_} - -> - FStar_Extraction_ML_UEnv.extend_ty - env1 a false) g - targs in - let expected_t = - term_as_mlty env - expected_source_ty in - let polytype = - let uu___9 = - tbinders_as_ty_params env - targs in - (uu___9, expected_t) in - let add_unit = - match rest_args with - | [] -> - (let uu___9 = - is_fstar_value body1 in - Prims.op_Negation uu___9) - || - (let uu___9 = - FStar_Syntax_Util.is_pure_comp - c1 in - Prims.op_Negation - uu___9) - | uu___9 -> false in - let rest_args1 = - if add_unit - then - let uu___9 = unit_binder () in - uu___9 :: rest_args - else rest_args in - let polytype1 = - if add_unit - then - FStar_Extraction_ML_Syntax.push_unit - polytype - else polytype in - let body2 = - FStar_Syntax_Util.abs - rest_args1 body1 copt in - (lbname_, f_e, - (lbtyp1, (targs, polytype1)), - add_unit, has_c_inline, - body2)) - else - FStar_Compiler_Effect.failwith - "Not enough type binders") - | FStar_Syntax_Syntax.Tm_uinst uu___7 -> - let env = - FStar_Compiler_List.fold_left - (fun env1 -> - fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv - = a; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - FStar_Extraction_ML_UEnv.extend_ty - env1 a false) g tbinders in - let expected_t = term_as_mlty env tbody in - let polytype = - let uu___8 = - tbinders_as_ty_params env tbinders in - (uu___8, expected_t) in - let args = - FStar_Compiler_List.map - (fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv = - bv; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - let uu___12 = - FStar_Syntax_Syntax.bv_to_name - bv in - FStar_Syntax_Syntax.as_arg - uu___12) tbinders in - let e = - FStar_Syntax_Syntax.mk - (FStar_Syntax_Syntax.Tm_app - { - FStar_Syntax_Syntax.hd = lbdef1; - FStar_Syntax_Syntax.args = args - }) lbdef1.FStar_Syntax_Syntax.pos in - (lbname_, f_e, - (lbtyp1, (tbinders, polytype)), false, - has_c_inline, e) - | FStar_Syntax_Syntax.Tm_fvar uu___7 -> - let env = - FStar_Compiler_List.fold_left - (fun env1 -> - fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv - = a; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - FStar_Extraction_ML_UEnv.extend_ty - env1 a false) g tbinders in - let expected_t = term_as_mlty env tbody in - let polytype = - let uu___8 = - tbinders_as_ty_params env tbinders in - (uu___8, expected_t) in - let args = - FStar_Compiler_List.map - (fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv = - bv; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - let uu___12 = - FStar_Syntax_Syntax.bv_to_name - bv in - FStar_Syntax_Syntax.as_arg - uu___12) tbinders in - let e = - FStar_Syntax_Syntax.mk - (FStar_Syntax_Syntax.Tm_app - { - FStar_Syntax_Syntax.hd = lbdef1; - FStar_Syntax_Syntax.args = args - }) lbdef1.FStar_Syntax_Syntax.pos in - (lbname_, f_e, - (lbtyp1, (tbinders, polytype)), false, - has_c_inline, e) - | FStar_Syntax_Syntax.Tm_name uu___7 -> - let env = - FStar_Compiler_List.fold_left - (fun env1 -> - fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv - = a; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - FStar_Extraction_ML_UEnv.extend_ty - env1 a false) g tbinders in - let expected_t = term_as_mlty env tbody in - let polytype = - let uu___8 = - tbinders_as_ty_params env tbinders in - (uu___8, expected_t) in - let args = - FStar_Compiler_List.map - (fun uu___8 -> - match uu___8 with - | { - FStar_Syntax_Syntax.binder_bv = - bv; - FStar_Syntax_Syntax.binder_qual - = uu___9; - FStar_Syntax_Syntax.binder_positivity - = uu___10; - FStar_Syntax_Syntax.binder_attrs - = uu___11;_} - -> - let uu___12 = - FStar_Syntax_Syntax.bv_to_name - bv in - FStar_Syntax_Syntax.as_arg - uu___12) tbinders in - let e = - FStar_Syntax_Syntax.mk - (FStar_Syntax_Syntax.Tm_app - { - FStar_Syntax_Syntax.hd = lbdef1; - FStar_Syntax_Syntax.args = args - }) lbdef1.FStar_Syntax_Syntax.pos in - (lbname_, f_e, - (lbtyp1, (tbinders, polytype)), false, - has_c_inline, e) - | uu___7 -> err_value_restriction lbdef1))) + FStar_Syntax_Syntax.binder_attrs = + binder_attrs;_} + -> + let uu___11 = + let uu___12 = + FStar_Extraction_ML_UEnv.lookup_ty + env x in + uu___12.FStar_Extraction_ML_UEnv.ty_b_name in + let uu___12 = + FStar_Compiler_List.map + (fun attr -> + let uu___13 = + term_as_mlexpr g attr in + match uu___13 with + | (e, uu___14, uu___15) -> e) + binder_attrs in + { + FStar_Extraction_ML_Syntax.ty_param_name + = uu___11; + FStar_Extraction_ML_Syntax.ty_param_attrs + = uu___12 + }) in + match lbdef1.FStar_Syntax_Syntax.n with + | FStar_Syntax_Syntax.Tm_abs + { FStar_Syntax_Syntax.bs = bs2; + FStar_Syntax_Syntax.body = body; + FStar_Syntax_Syntax.rc_opt = copt;_} + -> + let uu___8 = + FStar_Syntax_Subst.open_term bs2 body in + (match uu___8 with + | (bs3, body1) -> + if + n_tbinders <= + (FStar_Compiler_List.length bs3) + then + let uu___9 = + FStar_Compiler_Util.first_N + n_tbinders bs3 in + (match uu___9 with + | (targs, rest_args) -> + let expected_source_ty = + let s = + FStar_Compiler_List.map2 + (fun uu___10 -> + fun uu___11 -> + match (uu___10, + uu___11) + with + | ({ + FStar_Syntax_Syntax.binder_bv + = x; + FStar_Syntax_Syntax.binder_qual + = uu___12; + FStar_Syntax_Syntax.binder_positivity + = uu___13; + FStar_Syntax_Syntax.binder_attrs + = uu___14;_}, + { + FStar_Syntax_Syntax.binder_bv + = y; + FStar_Syntax_Syntax.binder_qual + = uu___15; + FStar_Syntax_Syntax.binder_positivity + = uu___16; + FStar_Syntax_Syntax.binder_attrs + = uu___17;_}) + -> + let uu___18 = + let uu___19 = + FStar_Syntax_Syntax.bv_to_name + y in + (x, uu___19) in + FStar_Syntax_Syntax.NT + uu___18) + tbinders targs in + FStar_Syntax_Subst.subst s + tbody in + let env = + FStar_Compiler_List.fold_left + (fun env1 -> + fun uu___10 -> + match uu___10 with + | { + FStar_Syntax_Syntax.binder_bv + = a; + FStar_Syntax_Syntax.binder_qual + = uu___11; + FStar_Syntax_Syntax.binder_positivity + = uu___12; + FStar_Syntax_Syntax.binder_attrs + = uu___13;_} + -> + FStar_Extraction_ML_UEnv.extend_ty + env1 a false) g + targs in + let expected_t = + term_as_mlty env + expected_source_ty in + let polytype = + let uu___10 = + tbinders_as_ty_params env + targs in + (uu___10, expected_t) in + let add_unit = + match rest_args with + | [] -> + (let uu___10 = + is_fstar_value body1 in + Prims.op_Negation + uu___10) + || + (let uu___10 = + FStar_Syntax_Util.is_pure_comp + c1 in + Prims.op_Negation + uu___10) + | uu___10 -> false in + let rest_args1 = + if add_unit + then + let uu___10 = + unit_binder () in + uu___10 :: rest_args + else rest_args in + let polytype1 = + if add_unit + then + FStar_Extraction_ML_Syntax.push_unit + eff_body polytype + else polytype in + let body2 = + FStar_Syntax_Util.abs + rest_args1 body1 copt in + (lbname_, f_e, + (lbtyp1, (targs, polytype1)), + add_unit, has_c_inline, + body2)) + else + FStar_Compiler_Effect.failwith + "Not enough type binders") + | FStar_Syntax_Syntax.Tm_uinst uu___8 -> + let env = + FStar_Compiler_List.fold_left + (fun env1 -> + fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv + = a; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + FStar_Extraction_ML_UEnv.extend_ty + env1 a false) g tbinders in + let expected_t = term_as_mlty env tbody in + let polytype = + let uu___9 = + tbinders_as_ty_params env tbinders in + (uu___9, expected_t) in + let args = + FStar_Compiler_List.map + (fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv = + bv; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + let uu___13 = + FStar_Syntax_Syntax.bv_to_name + bv in + FStar_Syntax_Syntax.as_arg + uu___13) tbinders in + let e = + FStar_Syntax_Syntax.mk + (FStar_Syntax_Syntax.Tm_app + { + FStar_Syntax_Syntax.hd = lbdef1; + FStar_Syntax_Syntax.args = args + }) lbdef1.FStar_Syntax_Syntax.pos in + (lbname_, f_e, + (lbtyp1, (tbinders, polytype)), false, + has_c_inline, e) + | FStar_Syntax_Syntax.Tm_fvar uu___8 -> + let env = + FStar_Compiler_List.fold_left + (fun env1 -> + fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv + = a; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + FStar_Extraction_ML_UEnv.extend_ty + env1 a false) g tbinders in + let expected_t = term_as_mlty env tbody in + let polytype = + let uu___9 = + tbinders_as_ty_params env tbinders in + (uu___9, expected_t) in + let args = + FStar_Compiler_List.map + (fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv = + bv; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + let uu___13 = + FStar_Syntax_Syntax.bv_to_name + bv in + FStar_Syntax_Syntax.as_arg + uu___13) tbinders in + let e = + FStar_Syntax_Syntax.mk + (FStar_Syntax_Syntax.Tm_app + { + FStar_Syntax_Syntax.hd = lbdef1; + FStar_Syntax_Syntax.args = args + }) lbdef1.FStar_Syntax_Syntax.pos in + (lbname_, f_e, + (lbtyp1, (tbinders, polytype)), false, + has_c_inline, e) + | FStar_Syntax_Syntax.Tm_name uu___8 -> + let env = + FStar_Compiler_List.fold_left + (fun env1 -> + fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv + = a; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + FStar_Extraction_ML_UEnv.extend_ty + env1 a false) g tbinders in + let expected_t = term_as_mlty env tbody in + let polytype = + let uu___9 = + tbinders_as_ty_params env tbinders in + (uu___9, expected_t) in + let args = + FStar_Compiler_List.map + (fun uu___9 -> + match uu___9 with + | { + FStar_Syntax_Syntax.binder_bv = + bv; + FStar_Syntax_Syntax.binder_qual + = uu___10; + FStar_Syntax_Syntax.binder_positivity + = uu___11; + FStar_Syntax_Syntax.binder_attrs + = uu___12;_} + -> + let uu___13 = + FStar_Syntax_Syntax.bv_to_name + bv in + FStar_Syntax_Syntax.as_arg + uu___13) tbinders in + let e = + FStar_Syntax_Syntax.mk + (FStar_Syntax_Syntax.Tm_app + { + FStar_Syntax_Syntax.hd = lbdef1; + FStar_Syntax_Syntax.args = args + }) lbdef1.FStar_Syntax_Syntax.pos in + (lbname_, f_e, + (lbtyp1, (tbinders, polytype)), false, + has_c_inline, e) + | uu___8 -> err_value_restriction lbdef1)))) | uu___5 -> no_gen ()) in FStar_Compiler_List.map maybe_generalize (FStar_Pervasives_Native.snd lbs) @@ -2655,27 +2674,48 @@ and (check_term_as_mlexpr : let uu___2 = term_as_mlexpr g e in (match uu___2 with | (ml_e, tag, t) -> - let uu___3 = FStar_Extraction_ML_Util.eff_leq tag f in - if uu___3 - then - let uu___4 = - maybe_coerce e.FStar_Syntax_Syntax.pos g ml_e t ty in - (uu___4, ty) - else - (match (tag, f, ty) with - | (FStar_Extraction_ML_Syntax.E_ERASABLE, - FStar_Extraction_ML_Syntax.E_PURE, - FStar_Extraction_ML_Syntax.MLTY_Erased) -> - let uu___5 = - maybe_coerce e.FStar_Syntax_Syntax.pos g ml_e t - ty in - (uu___5, ty) - | uu___5 -> - (err_unexpected_eff g e ty f tag; - (let uu___7 = + (FStar_Extraction_ML_UEnv.debug g + (fun uu___4 -> + let uu___5 = + FStar_Class_Show.show + FStar_Syntax_Print.showable_term e in + let uu___6 = + let uu___7 = + FStar_Extraction_ML_UEnv.current_module_of_uenv + g in + FStar_Extraction_ML_Code.string_of_mlexpr uu___7 + ml_e in + let uu___7 = + FStar_Extraction_ML_Util.eff_to_string tag in + let uu___8 = + let uu___9 = + FStar_Extraction_ML_UEnv.current_module_of_uenv + g in + FStar_Extraction_ML_Code.string_of_mlty uu___9 t in + FStar_Compiler_Util.print4 + "Extracted %s to %s at eff %s and type %s\n" + uu___5 uu___6 uu___7 uu___8); + (let uu___4 = FStar_Extraction_ML_Util.eff_leq tag f in + if uu___4 + then + let uu___5 = + maybe_coerce e.FStar_Syntax_Syntax.pos g ml_e t ty in + (uu___5, ty) + else + (match (tag, f, ty) with + | (FStar_Extraction_ML_Syntax.E_ERASABLE, + FStar_Extraction_ML_Syntax.E_PURE, + FStar_Extraction_ML_Syntax.MLTY_Erased) -> + let uu___6 = maybe_coerce e.FStar_Syntax_Syntax.pos g ml_e t ty in - (uu___7, ty)))))) + (uu___6, ty) + | uu___6 -> + (err_unexpected_eff g e ty f tag; + (let uu___8 = + maybe_coerce e.FStar_Syntax_Syntax.pos g + ml_e t ty in + (uu___8, ty)))))))) and (term_as_mlexpr : FStar_Extraction_ML_UEnv.uenv -> FStar_Syntax_Syntax.term -> @@ -2845,23 +2885,24 @@ and (term_as_mlexpr' : (match uu___2 with | { FStar_Extraction_ML_UEnv.exp_b_name = uu___3; FStar_Extraction_ML_UEnv.exp_b_expr = fw; - FStar_Extraction_ML_UEnv.exp_b_tscheme = uu___4;_} -> - let uu___5 = - let uu___6 = - let uu___7 = - let uu___8 = - let uu___9 = + FStar_Extraction_ML_UEnv.exp_b_tscheme = uu___4; + FStar_Extraction_ML_UEnv.exp_b_eff = uu___5;_} -> + let uu___6 = + let uu___7 = + let uu___8 = + let uu___9 = + let uu___10 = FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.ml_string_ty (FStar_Extraction_ML_Syntax.MLE_Const (FStar_Extraction_ML_Syntax.MLC_String "Cannot evaluate open quotation at runtime")) in - [uu___9] in - (fw, uu___8) in - FStar_Extraction_ML_Syntax.MLE_App uu___7 in + [uu___10] in + (fw, uu___9) in + FStar_Extraction_ML_Syntax.MLE_App uu___8 in FStar_Extraction_ML_Syntax.with_ty - FStar_Extraction_ML_Syntax.ml_int_ty uu___6 in - (uu___5, FStar_Extraction_ML_Syntax.E_PURE, + FStar_Extraction_ML_Syntax.ml_int_ty uu___7 in + (uu___6, FStar_Extraction_ML_Syntax.E_PURE, FStar_Extraction_ML_Syntax.ml_int_ty)) | FStar_Syntax_Syntax.Tm_quoted (qt, @@ -3035,18 +3076,17 @@ and (term_as_mlexpr' : | (FStar_Pervasives.Inr { FStar_Extraction_ML_UEnv.exp_b_name = uu___5; FStar_Extraction_ML_UEnv.exp_b_expr = x; - FStar_Extraction_ML_UEnv.exp_b_tscheme = mltys;_}, + FStar_Extraction_ML_UEnv.exp_b_tscheme = mltys; + FStar_Extraction_ML_UEnv.exp_b_eff = etag;_}, qual) -> (match mltys with | ([], t1) when t1 = FStar_Extraction_ML_Syntax.ml_unit_ty - -> - (FStar_Extraction_ML_Syntax.ml_unit, - FStar_Extraction_ML_Syntax.E_PURE, t1) + -> (FStar_Extraction_ML_Syntax.ml_unit, etag, t1) | ([], t1) -> let uu___6 = maybe_eta_data_and_project_record g qual t1 x in - (uu___6, FStar_Extraction_ML_Syntax.E_PURE, t1) - | uu___6 -> instantiate_maybe_partial g x mltys [])) + (uu___6, etag, t1) + | uu___6 -> instantiate_maybe_partial g x etag mltys [])) | FStar_Syntax_Syntax.Tm_fvar fv -> let uu___1 = is_type g t in if uu___1 @@ -3066,36 +3106,39 @@ and (term_as_mlexpr' : | FStar_Pervasives_Native.Some { FStar_Extraction_ML_UEnv.exp_b_name = uu___4; FStar_Extraction_ML_UEnv.exp_b_expr = x; - FStar_Extraction_ML_UEnv.exp_b_tscheme = mltys;_} + FStar_Extraction_ML_UEnv.exp_b_tscheme = mltys; + FStar_Extraction_ML_UEnv.exp_b_eff = uu___5;_} -> (FStar_Extraction_ML_UEnv.debug g - (fun uu___6 -> - let uu___7 = + (fun uu___7 -> + let uu___8 = FStar_Class_Show.show FStar_Syntax_Print.showable_fv fv in - let uu___8 = - let uu___9 = - FStar_Extraction_ML_UEnv.current_module_of_uenv g in - FStar_Extraction_ML_Code.string_of_mlexpr uu___9 x in let uu___9 = let uu___10 = FStar_Extraction_ML_UEnv.current_module_of_uenv g in - FStar_Extraction_ML_Code.string_of_mlty uu___10 + FStar_Extraction_ML_Code.string_of_mlexpr uu___10 x in + let uu___10 = + let uu___11 = + FStar_Extraction_ML_UEnv.current_module_of_uenv g in + FStar_Extraction_ML_Code.string_of_mlty uu___11 (FStar_Pervasives_Native.snd mltys) in FStar_Compiler_Util.print3 - "looked up %s: got %s at %s \n" uu___7 uu___8 - uu___9); + "looked up %s: got %s at %s \n" uu___8 uu___9 + uu___10); (match mltys with | ([], t1) when t1 = FStar_Extraction_ML_Syntax.ml_unit_ty -> (FStar_Extraction_ML_Syntax.ml_unit, FStar_Extraction_ML_Syntax.E_PURE, t1) | ([], t1) -> - let uu___6 = + let uu___7 = maybe_eta_data_and_project_record g fv.FStar_Syntax_Syntax.fv_qual t1 x in - (uu___6, FStar_Extraction_ML_Syntax.E_PURE, t1) - | uu___6 -> instantiate_maybe_partial g x mltys []))) + (uu___7, FStar_Extraction_ML_Syntax.E_PURE, t1) + | uu___7 -> + instantiate_maybe_partial g x + FStar_Extraction_ML_Syntax.E_PURE mltys []))) | FStar_Syntax_Syntax.Tm_abs { FStar_Syntax_Syntax.bs = bs; FStar_Syntax_Syntax.body = body; FStar_Syntax_Syntax.rc_opt = rcopt;_} @@ -3223,23 +3266,24 @@ and (term_as_mlexpr' : (match uu___6 with | { FStar_Extraction_ML_UEnv.exp_b_name = uu___7; FStar_Extraction_ML_UEnv.exp_b_expr = fw; - FStar_Extraction_ML_UEnv.exp_b_tscheme = uu___8;_} -> - let uu___9 = - let uu___10 = - let uu___11 = - let uu___12 = - let uu___13 = + FStar_Extraction_ML_UEnv.exp_b_tscheme = uu___8; + FStar_Extraction_ML_UEnv.exp_b_eff = uu___9;_} -> + let uu___10 = + let uu___11 = + let uu___12 = + let uu___13 = + let uu___14 = FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.ml_string_ty (FStar_Extraction_ML_Syntax.MLE_Const (FStar_Extraction_ML_Syntax.MLC_String "Extraction of reflect is not supported")) in - [uu___13] in - (fw, uu___12) in - FStar_Extraction_ML_Syntax.MLE_App uu___11 in + [uu___14] in + (fw, uu___13) in + FStar_Extraction_ML_Syntax.MLE_App uu___12 in FStar_Extraction_ML_Syntax.with_ty - FStar_Extraction_ML_Syntax.ml_int_ty uu___10 in - (uu___9, FStar_Extraction_ML_Syntax.E_PURE, + FStar_Extraction_ML_Syntax.ml_int_ty uu___11 in + (uu___10, FStar_Extraction_ML_Syntax.E_PURE, FStar_Extraction_ML_Syntax.ml_int_ty)) | FStar_Syntax_Syntax.Tm_app uu___1 when is_steel_with_invariant_g t -> @@ -3529,15 +3573,20 @@ and (term_as_mlexpr' : uu___12 (FStar_Pervasives_Native.snd exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme) in - FStar_Compiler_Util.print3 - "@@@looked up %s: got %s at %s\n" uu___9 - uu___10 uu___11); + let uu___12 = + FStar_Class_Show.show + FStar_Extraction_ML_Code.showable_etag + exp_b.FStar_Extraction_ML_UEnv.exp_b_eff in + FStar_Compiler_Util.print4 + "@@@looked up %s: got %s at %s with eff <%s>\n" + uu___9 uu___10 uu___11 uu___12); (((exp_b.FStar_Extraction_ML_UEnv.exp_b_expr), - (exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme)), + (exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme), + (exp_b.FStar_Extraction_ML_UEnv.exp_b_eff)), q)) | uu___7 -> FStar_Compiler_Effect.failwith "FIXME Ty" in (match uu___5 with - | ((head_ml, (vars, t1)), qual) -> + | ((head_ml, (vars, t1), head_eff), qual) -> let has_typ_apps = match args with | (a, uu___6)::uu___7 -> is_type g a @@ -3575,16 +3624,20 @@ and (term_as_mlexpr' : uu___9 -> let uu___10 = instantiate_maybe_partial g head_ml - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___10 with - | (head2, uu___11, t2) -> (head2, t2)) + | (head2, eff, t2) -> + (head2, eff, t2)) | FStar_Extraction_ML_Syntax.MLE_Var uu___9 -> let uu___10 = instantiate_maybe_partial g head_ml - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___10 with - | (head2, uu___11, t2) -> (head2, t2)) + | (head2, eff, t2) -> + (head2, eff, t2)) | FStar_Extraction_ML_Syntax.MLE_App (head2, { @@ -3598,36 +3651,34 @@ and (term_as_mlexpr' : -> let uu___11 = instantiate_maybe_partial g head2 - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___11 with - | (head3, uu___12, t2) -> - let uu___13 = + | (head3, eff, t2) -> + let uu___12 = FStar_Extraction_ML_Syntax.with_ty t2 (FStar_Extraction_ML_Syntax.MLE_App (head3, [FStar_Extraction_ML_Syntax.ml_unit])) in - (uu___13, t2)) + (uu___12, eff, t2)) | uu___9 -> FStar_Compiler_Effect.failwith "Impossible: Unexpected head term" in (match uu___8 with - | (head2, t2) -> (head2, t2, rest)) in + | (head2, head_eff1, t2) -> + (head2, head_eff1, t2, rest)) in (match uu___6 with - | (head_ml1, head_t, args1) -> + | (head_ml1, head_eff1, head_t, args1) -> (match args1 with | [] -> let uu___7 = maybe_eta_data_and_project_record g qual head_t head_ml1 in - (uu___7, - FStar_Extraction_ML_Syntax.E_PURE, - head_t) + (uu___7, head_eff1, head_t) | uu___7 -> extract_app_maybe_projector qual - head_ml1 - (FStar_Extraction_ML_Syntax.E_PURE, - head_t) args1))) + head_ml1 (head_eff1, head_t) args1))) | FStar_Syntax_Syntax.Tm_fvar uu___4 -> let uu___5 = let uu___6 = @@ -3654,15 +3705,20 @@ and (term_as_mlexpr' : uu___12 (FStar_Pervasives_Native.snd exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme) in - FStar_Compiler_Util.print3 - "@@@looked up %s: got %s at %s\n" uu___9 - uu___10 uu___11); + let uu___12 = + FStar_Class_Show.show + FStar_Extraction_ML_Code.showable_etag + exp_b.FStar_Extraction_ML_UEnv.exp_b_eff in + FStar_Compiler_Util.print4 + "@@@looked up %s: got %s at %s with eff <%s>\n" + uu___9 uu___10 uu___11 uu___12); (((exp_b.FStar_Extraction_ML_UEnv.exp_b_expr), - (exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme)), + (exp_b.FStar_Extraction_ML_UEnv.exp_b_tscheme), + (exp_b.FStar_Extraction_ML_UEnv.exp_b_eff)), q)) | uu___7 -> FStar_Compiler_Effect.failwith "FIXME Ty" in (match uu___5 with - | ((head_ml, (vars, t1)), qual) -> + | ((head_ml, (vars, t1), head_eff), qual) -> let has_typ_apps = match args with | (a, uu___6)::uu___7 -> is_type g a @@ -3700,16 +3756,20 @@ and (term_as_mlexpr' : uu___9 -> let uu___10 = instantiate_maybe_partial g head_ml - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___10 with - | (head2, uu___11, t2) -> (head2, t2)) + | (head2, eff, t2) -> + (head2, eff, t2)) | FStar_Extraction_ML_Syntax.MLE_Var uu___9 -> let uu___10 = instantiate_maybe_partial g head_ml - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___10 with - | (head2, uu___11, t2) -> (head2, t2)) + | (head2, eff, t2) -> + (head2, eff, t2)) | FStar_Extraction_ML_Syntax.MLE_App (head2, { @@ -3723,36 +3783,34 @@ and (term_as_mlexpr' : -> let uu___11 = instantiate_maybe_partial g head2 - (vars, t1) provided_type_args in + head_eff (vars, t1) + provided_type_args in (match uu___11 with - | (head3, uu___12, t2) -> - let uu___13 = + | (head3, eff, t2) -> + let uu___12 = FStar_Extraction_ML_Syntax.with_ty t2 (FStar_Extraction_ML_Syntax.MLE_App (head3, [FStar_Extraction_ML_Syntax.ml_unit])) in - (uu___13, t2)) + (uu___12, eff, t2)) | uu___9 -> FStar_Compiler_Effect.failwith "Impossible: Unexpected head term" in (match uu___8 with - | (head2, t2) -> (head2, t2, rest)) in + | (head2, head_eff1, t2) -> + (head2, head_eff1, t2, rest)) in (match uu___6 with - | (head_ml1, head_t, args1) -> + | (head_ml1, head_eff1, head_t, args1) -> (match args1 with | [] -> let uu___7 = maybe_eta_data_and_project_record g qual head_t head_ml1 in - (uu___7, - FStar_Extraction_ML_Syntax.E_PURE, - head_t) + (uu___7, head_eff1, head_t) | uu___7 -> extract_app_maybe_projector qual - head_ml1 - (FStar_Extraction_ML_Syntax.E_PURE, - head_t) args1))) + head_ml1 (head_eff1, head_t) args1))) | uu___4 -> let uu___5 = term_as_mlexpr g head1 in (match uu___5 with @@ -4087,55 +4145,69 @@ and (term_as_mlexpr' : | (nm, (_lbname, f, (_t, (targs, polytype)), add_unit, has_c_inline, e)) -> - let env1 = - FStar_Compiler_List.fold_left - (fun env2 -> - fun uu___3 -> - match uu___3 with - | { FStar_Syntax_Syntax.binder_bv = a; - FStar_Syntax_Syntax.binder_qual = uu___4; - FStar_Syntax_Syntax.binder_positivity = - uu___5; - FStar_Syntax_Syntax.binder_attrs = uu___6;_} - -> - FStar_Extraction_ML_UEnv.extend_ty env2 a - false) env targs in - let expected_t = FStar_Pervasives_Native.snd polytype in - let uu___3 = check_term_as_mlexpr env1 e f expected_t in - (match uu___3 with - | (e1, ty) -> - let uu___4 = maybe_promote_effect e1 f expected_t in - (match uu___4 with - | (e2, f1) -> - let meta = - match (f1, ty) with - | (FStar_Extraction_ML_Syntax.E_PURE, - FStar_Extraction_ML_Syntax.MLTY_Erased) - -> [FStar_Extraction_ML_Syntax.Erased] - | (FStar_Extraction_ML_Syntax.E_ERASABLE, - FStar_Extraction_ML_Syntax.MLTY_Erased) - -> [FStar_Extraction_ML_Syntax.Erased] - | uu___5 -> [] in - let meta1 = - if has_c_inline - then FStar_Extraction_ML_Syntax.CInline :: - meta - else meta in - (f1, - { - FStar_Extraction_ML_Syntax.mllb_name = nm; - FStar_Extraction_ML_Syntax.mllb_tysc = - (FStar_Pervasives_Native.Some polytype); - FStar_Extraction_ML_Syntax.mllb_add_unit - = add_unit; - FStar_Extraction_ML_Syntax.mllb_def = e2; - FStar_Extraction_ML_Syntax.mllb_attrs = - []; - FStar_Extraction_ML_Syntax.mllb_meta = - meta1; - FStar_Extraction_ML_Syntax.print_typ = - true - }))) in + (FStar_Extraction_ML_UEnv.debug g + (fun uu___4 -> + let uu___5 = + FStar_Class_Show.show + (FStar_Class_Show.printableshow + FStar_Class_Printable.printable_string) nm in + let uu___6 = + FStar_Class_Show.show + FStar_Extraction_ML_Code.showable_mlty + (FStar_Pervasives_Native.snd polytype) in + FStar_Compiler_Util.print2 + "Checking lb %s at %s\n" uu___5 uu___6); + (let env1 = + FStar_Compiler_List.fold_left + (fun env2 -> + fun uu___4 -> + match uu___4 with + | { FStar_Syntax_Syntax.binder_bv = a; + FStar_Syntax_Syntax.binder_qual = uu___5; + FStar_Syntax_Syntax.binder_positivity = + uu___6; + FStar_Syntax_Syntax.binder_attrs = + uu___7;_} + -> + FStar_Extraction_ML_UEnv.extend_ty env2 + a false) env targs in + let expected_t = FStar_Pervasives_Native.snd polytype in + let uu___4 = check_term_as_mlexpr env1 e f expected_t in + match uu___4 with + | (e1, ty) -> + let uu___5 = maybe_promote_effect e1 f expected_t in + (match uu___5 with + | (e2, f1) -> + let meta = + match (f1, ty) with + | (FStar_Extraction_ML_Syntax.E_PURE, + FStar_Extraction_ML_Syntax.MLTY_Erased) + -> [FStar_Extraction_ML_Syntax.Erased] + | (FStar_Extraction_ML_Syntax.E_ERASABLE, + FStar_Extraction_ML_Syntax.MLTY_Erased) + -> [FStar_Extraction_ML_Syntax.Erased] + | uu___6 -> [] in + let meta1 = + if has_c_inline + then FStar_Extraction_ML_Syntax.CInline :: + meta + else meta in + (f1, + { + FStar_Extraction_ML_Syntax.mllb_name = + nm; + FStar_Extraction_ML_Syntax.mllb_tysc = + (FStar_Pervasives_Native.Some polytype); + FStar_Extraction_ML_Syntax.mllb_add_unit + = add_unit; + FStar_Extraction_ML_Syntax.mllb_def = e2; + FStar_Extraction_ML_Syntax.mllb_attrs = + []; + FStar_Extraction_ML_Syntax.mllb_meta = + meta1; + FStar_Extraction_ML_Syntax.print_typ = + true + })))) in let lbs3 = extract_lb_sig g (is_rec, lbs2) in let uu___2 = FStar_Compiler_List.fold_right @@ -4366,26 +4438,28 @@ and (term_as_mlexpr' : FStar_Extraction_ML_UEnv.exp_b_expr = fw; FStar_Extraction_ML_UEnv.exp_b_tscheme - = uu___9;_} + = uu___9; + FStar_Extraction_ML_UEnv.exp_b_eff = + uu___10;_} -> - let uu___10 = - let uu___11 = - let uu___12 = - let uu___13 = - let uu___14 = + let uu___11 = + let uu___12 = + let uu___13 = + let uu___14 = + let uu___15 = FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.ml_string_ty (FStar_Extraction_ML_Syntax.MLE_Const (FStar_Extraction_ML_Syntax.MLC_String "unreachable")) in - [uu___14] in - (fw, uu___13) in + [uu___15] in + (fw, uu___14) in FStar_Extraction_ML_Syntax.MLE_App - uu___12 in + uu___13 in FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.ml_int_ty - uu___11 in - (uu___10, + uu___12 in + (uu___11, FStar_Extraction_ML_Syntax.E_PURE, FStar_Extraction_ML_Syntax.ml_int_ty)) | (uu___7, uu___8, (uu___9, f_first, t_first))::rest diff --git a/ocaml/fstar-lib/generated/FStar_Extraction_ML_UEnv.ml b/ocaml/fstar-lib/generated/FStar_Extraction_ML_UEnv.ml index 9931aaf7807..4a5ab217e08 100644 --- a/ocaml/fstar-lib/generated/FStar_Extraction_ML_UEnv.ml +++ b/ocaml/fstar-lib/generated/FStar_Extraction_ML_UEnv.ml @@ -14,22 +14,28 @@ type exp_binding = { exp_b_name: FStar_Extraction_ML_Syntax.mlident ; exp_b_expr: FStar_Extraction_ML_Syntax.mlexpr ; - exp_b_tscheme: FStar_Extraction_ML_Syntax.mltyscheme } + exp_b_tscheme: FStar_Extraction_ML_Syntax.mltyscheme ; + exp_b_eff: FStar_Extraction_ML_Syntax.e_tag } let (__proj__Mkexp_binding__item__exp_b_name : exp_binding -> FStar_Extraction_ML_Syntax.mlident) = fun projectee -> match projectee with - | { exp_b_name; exp_b_expr; exp_b_tscheme;_} -> exp_b_name + | { exp_b_name; exp_b_expr; exp_b_tscheme; exp_b_eff;_} -> exp_b_name let (__proj__Mkexp_binding__item__exp_b_expr : exp_binding -> FStar_Extraction_ML_Syntax.mlexpr) = fun projectee -> match projectee with - | { exp_b_name; exp_b_expr; exp_b_tscheme;_} -> exp_b_expr + | { exp_b_name; exp_b_expr; exp_b_tscheme; exp_b_eff;_} -> exp_b_expr let (__proj__Mkexp_binding__item__exp_b_tscheme : exp_binding -> FStar_Extraction_ML_Syntax.mltyscheme) = fun projectee -> match projectee with - | { exp_b_name; exp_b_expr; exp_b_tscheme;_} -> exp_b_tscheme + | { exp_b_name; exp_b_expr; exp_b_tscheme; exp_b_eff;_} -> exp_b_tscheme +let (__proj__Mkexp_binding__item__exp_b_eff : + exp_binding -> FStar_Extraction_ML_Syntax.e_tag) = + fun projectee -> + match projectee with + | { exp_b_name; exp_b_expr; exp_b_tscheme; exp_b_eff;_} -> exp_b_eff type ty_or_exp_b = (ty_binding, exp_binding) FStar_Pervasives.either type binding = | Bv of (FStar_Syntax_Syntax.bv * ty_or_exp_b) @@ -757,34 +763,38 @@ let (extend_bv : FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.MLTY_Top uu___2) else FStar_Extraction_ML_Syntax.with_ty ml_ty mlx in - let t_x1 = + let uu___1 = if add_unit then FStar_Extraction_ML_Syntax.pop_unit t_x - else t_x in - let exp_binding1 = - { - exp_b_name = mlident; - exp_b_expr = mlx1; - exp_b_tscheme = t_x1 - } in - let gamma = (Bv (x, (FStar_Pervasives.Inr exp_binding1))) :: - (g.env_bindings) in - let tcenv = - let uu___1 = FStar_Syntax_Syntax.binders_of_list [x] in - FStar_TypeChecker_Env.push_binders g.env_tcenv uu___1 in - ({ - env_tcenv = tcenv; - env_bindings = gamma; - env_mlident_map = mlident_map; - env_remove_typars = (g.env_remove_typars); - mlpath_of_lid = (g.mlpath_of_lid); - env_fieldname_map = (g.env_fieldname_map); - mlpath_of_fieldname = (g.mlpath_of_fieldname); - tydefs = (g.tydefs); - type_names = (g.type_names); - tydef_declarations = (g.tydef_declarations); - currentModule = (g.currentModule) - }, mlident, exp_binding1) + else (FStar_Extraction_ML_Syntax.E_PURE, t_x) in + (match uu___1 with + | (eff, t_x1) -> + let exp_binding1 = + { + exp_b_name = mlident; + exp_b_expr = mlx1; + exp_b_tscheme = t_x1; + exp_b_eff = eff + } in + let gamma = + (Bv (x, (FStar_Pervasives.Inr exp_binding1))) :: + (g.env_bindings) in + let tcenv = + let uu___2 = FStar_Syntax_Syntax.binders_of_list [x] in + FStar_TypeChecker_Env.push_binders g.env_tcenv uu___2 in + ({ + env_tcenv = tcenv; + env_bindings = gamma; + env_mlident_map = mlident_map; + env_remove_typars = (g.env_remove_typars); + mlpath_of_lid = (g.mlpath_of_lid); + env_fieldname_map = (g.env_fieldname_map); + mlpath_of_fieldname = (g.mlpath_of_fieldname); + tydefs = (g.tydefs); + type_names = (g.type_names); + tydef_declarations = (g.tydef_declarations); + currentModule = (g.currentModule) + }, mlident, exp_binding1)) let (burn_name : uenv -> FStar_Extraction_ML_Syntax.mlident -> uenv) = fun g -> fun i -> @@ -874,33 +884,36 @@ let (extend_fv : FStar_Extraction_ML_Syntax.with_ty FStar_Extraction_ML_Syntax.MLTY_Top uu___2 else FStar_Extraction_ML_Syntax.with_ty ml_ty mly in - let t_x1 = + let uu___2 = if add_unit then FStar_Extraction_ML_Syntax.pop_unit t_x - else t_x in - let exp_binding1 = - { - exp_b_name = mlsymbol; - exp_b_expr = mly1; - exp_b_tscheme = t_x1 - } in - let gamma = (Fv (x, exp_binding1)) :: (g1.env_bindings) in - let mlident_map = - FStar_Compiler_Util.psmap_add g1.env_mlident_map mlsymbol - "" in - ({ - env_tcenv = (g1.env_tcenv); - env_bindings = gamma; - env_mlident_map = mlident_map; - env_remove_typars = (g1.env_remove_typars); - mlpath_of_lid = (g1.mlpath_of_lid); - env_fieldname_map = (g1.env_fieldname_map); - mlpath_of_fieldname = (g1.mlpath_of_fieldname); - tydefs = (g1.tydefs); - type_names = (g1.type_names); - tydef_declarations = (g1.tydef_declarations); - currentModule = (g1.currentModule) - }, mlsymbol, exp_binding1) + else (FStar_Extraction_ML_Syntax.E_PURE, t_x) in + (match uu___2 with + | (eff, t_x1) -> + let exp_binding1 = + { + exp_b_name = mlsymbol; + exp_b_expr = mly1; + exp_b_tscheme = t_x1; + exp_b_eff = eff + } in + let gamma = (Fv (x, exp_binding1)) :: (g1.env_bindings) in + let mlident_map = + FStar_Compiler_Util.psmap_add g1.env_mlident_map + mlsymbol "" in + ({ + env_tcenv = (g1.env_tcenv); + env_bindings = gamma; + env_mlident_map = mlident_map; + env_remove_typars = (g1.env_remove_typars); + mlpath_of_lid = (g1.mlpath_of_lid); + env_fieldname_map = (g1.env_fieldname_map); + mlpath_of_fieldname = (g1.mlpath_of_fieldname); + tydefs = (g1.tydefs); + type_names = (g1.type_names); + tydef_declarations = (g1.tydef_declarations); + currentModule = (g1.currentModule) + }, mlsymbol, exp_binding1)) else (let uu___2 = let uu___3 = diff --git a/ocaml/fstar-lib/generated/FStar_Options.ml b/ocaml/fstar-lib/generated/FStar_Options.ml index 3bc05ae358a..43b25f20807 100644 --- a/ocaml/fstar-lib/generated/FStar_Options.ml +++ b/ocaml/fstar-lib/generated/FStar_Options.ml @@ -422,7 +422,7 @@ let (init : unit -> unit) = FStar_Compiler_List.iter set_option' defaults let (clear : unit -> unit) = fun uu___ -> FStar_Compiler_Effect.op_Colon_Equals history [[]]; init () -let (uu___151 : unit) = clear () +let (uu___0 : unit) = clear () let (get_option : Prims.string -> option_val) = fun s -> let uu___ = @@ -1135,8 +1135,7 @@ let (interp_quake_arg : Prims.string -> (Prims.int * Prims.int * Prims.bool)) let uu___ = ios f1 in let uu___1 = ios f2 in (uu___, uu___1, true) else FStar_Compiler_Effect.failwith "unexpected value for --quake" | uu___ -> FStar_Compiler_Effect.failwith "unexpected value for --quake" -let (uu___526 : (((Prims.string -> unit) -> unit) * (Prims.string -> unit))) - = +let (uu___1 : (((Prims.string -> unit) -> unit) * (Prims.string -> unit))) = let cb = FStar_Compiler_Util.mk_ref FStar_Pervasives_Native.None in let set1 f = FStar_Compiler_Effect.op_Colon_Equals cb (FStar_Pervasives_Native.Some f) in @@ -1147,11 +1146,11 @@ let (uu___526 : (((Prims.string -> unit) -> unit) * (Prims.string -> unit))) | FStar_Pervasives_Native.Some f -> f msg in (set1, call) let (set_option_warning_callback_aux : (Prims.string -> unit) -> unit) = - match uu___526 with + match uu___1 with | (set_option_warning_callback_aux1, option_warning_callback) -> set_option_warning_callback_aux1 let (option_warning_callback : Prims.string -> unit) = - match uu___526 with + match uu___1 with | (set_option_warning_callback_aux1, option_warning_callback1) -> option_warning_callback1 let (set_option_warning_callback : (Prims.string -> unit) -> unit) = @@ -1164,107 +1163,107 @@ let rec (specs_with_types : fun warn_unsafe -> let text s = let uu___ = FStar_Pprint.break_ Prims.int_one in - let uu___1 = FStar_Pprint.words s in FStar_Pprint.flow uu___ uu___1 in + let uu___2 = FStar_Pprint.words s in FStar_Pprint.flow uu___ uu___2 in let uu___ = - let uu___1 = + let uu___2 = text "Abort on the n-th error or warning raised. Useful in combination with --trace_error. Count starts at 1, use 0 to disable. (default 0)" in (FStar_Getopt.noshort, "abort_on", (PostProcessed - ((fun uu___2 -> - match uu___2 with + ((fun uu___3 -> + match uu___3 with | Int x -> (FStar_Compiler_Effect.op_Colon_Equals abort_counter x; Int x) | x -> FStar_Compiler_Effect.failwith "?"), - (IntStr "non-negative integer"))), uu___1) in - let uu___1 = - let uu___2 = - let uu___3 = text "Admit SMT queries, unsafe! (default 'false')" in + (IntStr "non-negative integer"))), uu___2) in + let uu___2 = + let uu___3 = + let uu___4 = text "Admit SMT queries, unsafe! (default 'false')" in (FStar_Getopt.noshort, "admit_smt_queries", (WithSideEffect - ((fun uu___4 -> + ((fun uu___5 -> if warn_unsafe then option_warning_callback "admit_smt_queries" - else ()), BoolStr)), uu___3) in - let uu___3 = - let uu___4 = - let uu___5 = + else ()), BoolStr)), uu___4) in + let uu___4 = + let uu___5 = + let uu___6 = text "Admit all queries, except those with label ( symbol, id))(e.g. --admit_except '(FStar.Fin.pigeonhole, 1)' or --admit_except FStar.Fin.pigeonhole)" in (FStar_Getopt.noshort, "admit_except", (WithSideEffect - ((fun uu___6 -> + ((fun uu___7 -> if warn_unsafe then option_warning_callback "admit_except" - else ()), (SimpleStr "[symbol|(symbol, id)]"))), uu___5) in - let uu___5 = - let uu___6 = - let uu___7 = + else ()), (SimpleStr "[symbol|(symbol, id)]"))), uu___6) in + let uu___6 = + let uu___7 = + let uu___8 = text "Retain behavior of the tactic engine prior to the introduction of FStar.TypeChecker.Core (0 is most permissive, 2 is least permissive)" in (FStar_Getopt.noshort, "compat_pre_core", (IntStr "0, 1, 2"), - uu___7) in - let uu___7 = - let uu___8 = - let uu___9 = text "Retain untyped indexed effects implicits" in - (FStar_Getopt.noshort, "compat_pre_typed_indexed_effects", - (Const (Bool true)), uu___9) in + uu___8) in + let uu___8 = let uu___9 = - let uu___10 = - let uu___11 = + let uu___10 = text "Retain untyped indexed effects implicits" in + (FStar_Getopt.noshort, "compat_pre_typed_indexed_effects", + (Const (Bool true)), uu___10) in + let uu___10 = + let uu___11 = + let uu___12 = text "Fail if the SMT guard are produced when the tactic engine re-checks solutions produced by the unifier (default 'false')" in (FStar_Getopt.noshort, "disallow_unification_guards", - BoolStr, uu___11) in - let uu___11 = - let uu___12 = - let uu___13 = + BoolStr, uu___12) in + let uu___12 = + let uu___13 = + let uu___14 = text "Expects all modules whose names or namespaces match the provided options to already have valid .checked files in the include path" in (FStar_Getopt.noshort, "already_cached", (Accumulated (SimpleStr "One or more space-separated occurrences of '[+|-]( * | namespace | module)'")), - uu___13) in - let uu___13 = - let uu___14 = - let uu___15 = + uu___14) in + let uu___14 = + let uu___15 = + let uu___16 = text "Write a '.checked' file for each module after verification and read from it if present, instead of re-verifying" in (FStar_Getopt.noshort, "cache_checked_modules", - (Const (Bool true)), uu___15) in - let uu___15 = - let uu___16 = - let uu___17 = + (Const (Bool true)), uu___16) in + let uu___16 = + let uu___17 = + let uu___18 = text "Read and write .checked and .checked.lax in directory dir" in (FStar_Getopt.noshort, "cache_dir", (PostProcessed (pp_validate_dir, (PathStr "dir"))), - uu___17) in - let uu___17 = - let uu___18 = - let uu___19 = - text "Do not read or write any .checked files" in - (FStar_Getopt.noshort, "cache_off", - (Const (Bool true)), uu___19) in + uu___18) in + let uu___18 = let uu___19 = let uu___20 = - let uu___21 = + text "Do not read or write any .checked files" in + (FStar_Getopt.noshort, "cache_off", + (Const (Bool true)), uu___20) in + let uu___20 = + let uu___21 = + let uu___22 = text "Print the version for .checked files and exit." in (FStar_Getopt.noshort, "print_cache_version", - (Const (Bool true)), uu___21) in - let uu___21 = - let uu___22 = - let uu___23 = + (Const (Bool true)), uu___22) in + let uu___22 = + let uu___23 = + let uu___24 = text "Inline across module interfaces during extraction (aka. cross-module inlining)" in (FStar_Getopt.noshort, "cmi", - (Const (Bool true)), uu___23) in - let uu___23 = - let uu___24 = - let uu___25 = + (Const (Bool true)), uu___24) in + let uu___24 = + let uu___25 = + let uu___26 = text "Generate code for further compilation to executable code, or build a compiler plugin" in (FStar_Getopt.noshort, "codegen", @@ -1273,18 +1272,18 @@ let rec (specs_with_types : "FSharp"; "krml"; "Plugin"; - "Extension"]), uu___25) in - let uu___25 = - let uu___26 = - let uu___27 = + "Extension"]), uu___26) in + let uu___26 = + let uu___27 = + let uu___28 = text "External runtime library (i.e. M.N.x extracts to M.N.X instead of M_N.x)" in (FStar_Getopt.noshort, "codegen-lib", (Accumulated (SimpleStr "namespace")), - uu___27) in - let uu___27 = - let uu___28 = - let uu___29 = + uu___28) in + let uu___28 = + let uu___29 = + let uu___30 = text "Debug toggles (comma-separated list of debug keys)" in (100, "debug", @@ -1296,10 +1295,10 @@ let rec (specs_with_types : o), (ReverseAccumulated (SimpleStr "debug toggles")))), - uu___29) in - let uu___29 = - let uu___30 = - let uu___31 = + uu___30) in + let uu___30 = + let uu___31 = + let uu___32 = text "Enable all debug toggles. WARNING: this will cause a lot of output!" in (FStar_Getopt.noshort, "debug_all", @@ -1310,136 +1309,136 @@ let rec (specs_with_types : (FStar_Compiler_Debug.set_debug_all (); o) - | uu___32 -> + | uu___33 -> FStar_Compiler_Effect.failwith "?"), (Const (Bool true)))), - uu___31) in - let uu___31 = - let uu___32 = - let uu___33 = + uu___32) in + let uu___32 = + let uu___33 = + let uu___34 = text "Enable to make the effect of --debug apply to every module processed by the compiler, including dependencies." in (FStar_Getopt.noshort, "debug_all_modules", - (Const (Bool true)), uu___33) in - let uu___33 = - let uu___34 = - let uu___35 = - let uu___36 = + (Const (Bool true)), uu___34) in + let uu___34 = + let uu___35 = + let uu___36 = + let uu___37 = text "Enable several internal sanity checks, useful to track bugs and report issues." in - let uu___37 = - let uu___38 = - let uu___39 = - let uu___40 = + let uu___38 = + let uu___39 = + let uu___40 = + let uu___41 = text "if 'no', no checks are performed" in - let uu___41 = - let uu___42 = + let uu___42 = + let uu___43 = text "if 'warn', checks are performed and raise a warning when they fail" in - let uu___43 = - let uu___44 = + let uu___44 = + let uu___45 = text "if 'error, like 'warn', but the compiler raises a hard error instead" in - let uu___45 = - let uu___46 = + let uu___46 = + let uu___47 = text "if 'abort, like 'warn', but the compiler immediately aborts on an error" in - [uu___46] in - uu___44 :: uu___45 in - uu___42 :: uu___43 in - uu___40 :: uu___41 in + [uu___47] in + uu___45 :: uu___46 in + uu___43 :: uu___44 in + uu___41 :: uu___42 in FStar_Errors_Msg.bulleted - uu___39 in - let uu___39 = + uu___40 in + let uu___40 = text "(default 'no')" in FStar_Pprint.op_Hat_Slash_Hat - uu___38 uu___39 in - FStar_Pprint.op_Hat_Hat uu___36 - uu___37 in + uu___39 uu___40 in + FStar_Pprint.op_Hat_Hat uu___37 + uu___38 in (FStar_Getopt.noshort, "defensive", (EnumStr ["no"; "warn"; "error"; "abort"]), - uu___35) in - let uu___35 = - let uu___36 = - let uu___37 = - let uu___38 = + uu___36) in + let uu___36 = + let uu___37 = + let uu___38 = + let uu___39 = text "Output the transitive closure of the full dependency graph in three formats:" in - let uu___39 = - let uu___40 = - let uu___41 = + let uu___40 = + let uu___41 = + let uu___42 = text "'graph': a format suitable the 'dot' tool from 'GraphViz'" in - let uu___42 = - let uu___43 = + let uu___43 = + let uu___44 = text "'full': a format suitable for 'make', including dependences for producing .ml and .krml files" in - let uu___44 = - let uu___45 = + let uu___45 = + let uu___46 = text "'make': (deprecated) a format suitable for 'make', including only dependences among source files" in - [uu___45] in - uu___43 :: uu___44 in - uu___41 :: uu___42 in + [uu___46] in + uu___44 :: uu___45 in + uu___42 :: uu___43 in FStar_Errors_Msg.bulleted - uu___40 in - FStar_Pprint.op_Hat_Hat uu___38 - uu___39 in + uu___41 in + FStar_Pprint.op_Hat_Hat uu___39 + uu___40 in (FStar_Getopt.noshort, "dep", (EnumStr ["make"; "graph"; "full"; - "raw"]), uu___37) in - let uu___37 = - let uu___38 = - let uu___39 = + "raw"]), uu___38) in + let uu___38 = + let uu___39 = + let uu___40 = text "Emit a detailed error report by asking the SMT solver many queries; will take longer" in (FStar_Getopt.noshort, "detail_errors", - (Const (Bool true)), uu___39) in - let uu___39 = - let uu___40 = - let uu___41 = + (Const (Bool true)), uu___40) in + let uu___40 = + let uu___41 = + let uu___42 = text "Emit a detailed report for proof whose unsat core fails to replay" in (FStar_Getopt.noshort, "detail_hint_replay", - (Const (Bool true)), uu___41) in - let uu___41 = - let uu___42 = - let uu___43 = + (Const (Bool true)), uu___42) in + let uu___42 = + let uu___43 = + let uu___44 = text "Print out this module as it passes through the compiler pipeline" in (FStar_Getopt.noshort, "dump_module", (Accumulated (SimpleStr "module_name")), - uu___43) in - let uu___43 = - let uu___44 = - let uu___45 = + uu___44) in + let uu___44 = + let uu___45 = + let uu___46 = text "Try to solve subtyping constraints at each binder (loses precision but may be slightly more efficient)" in (FStar_Getopt.noshort, "eager_subtyping", (Const (Bool true)), - uu___45) in - let uu___45 = - let uu___46 = - let uu___47 = + uu___46) in + let uu___46 = + let uu___47 = + let uu___48 = text "Print context information for each error or warning raised (default false)" in (FStar_Getopt.noshort, "error_contexts", - BoolStr, uu___47) in - let uu___47 = - let uu___48 = - let uu___49 = + BoolStr, uu___48) in + let uu___48 = + let uu___49 = + let uu___50 = text "These options are set in extensions option map. Keys are usually namespaces separated by \":\". E.g., 'pulse:verbose=1;my:extension:option=xyz;foo:bar=baz'. These options are typically interpreted by extensions. Any later use of --ext over the same key overrides the old value. An entry 'e' that is not of the form 'a=b' is treated as 'e=1', i.e., 'e' associated with string \"1\"." in (FStar_Getopt.noshort, @@ -1462,38 +1461,38 @@ let rec (specs_with_types : -> [(k, v)] | - uu___50 + uu___51 -> [ (s1, "1")]) exts in - (let uu___51 = - let uu___52 + (let uu___52 = + let uu___53 = as_comma_string_list o in FStar_Compiler_List.collect parse_ext - uu___52 in + uu___53 in FStar_Compiler_List.iter (fun - uu___52 + uu___53 -> - match uu___52 + match uu___53 with | (k, v) -> FStar_Options_Ext.set k v) - uu___51); + uu___52); o), (ReverseAccumulated (SimpleStr "extension knobs")))), - uu___49) in - let uu___49 = - let uu___50 = - let uu___51 = + uu___50) in + let uu___50 = + let uu___51 = + let uu___52 = text "Extract only those modules whose names or namespaces match the provided options. 'TargetName' ranges over {OCaml, krml, FSharp, Plugin, Extension}. A 'ModuleSelector' is a space or comma-separated list of '[+|-]( * | namespace | module)'. For example --extract 'OCaml:A -A.B' --extract 'krml:A -A.C' --extract '*' means for OCaml, extract everything in the A namespace only except A.B; for krml, extract everything in the A namespace only except A.C; for everything else, extract everything. Note, the '+' is optional: --extract '+A' and --extract 'A' mean the same thing. Note also that '--extract A' applies both to a module named 'A' and to any module in the 'A' namespace Multiple uses of this option accumulate, e.g., --extract A --extract B is interpreted as --extract 'A B'." in (FStar_Getopt.noshort, @@ -1501,10 +1500,10 @@ let rec (specs_with_types : (Accumulated (SimpleStr "One or more semicolon separated occurrences of '[TargetName:]ModuleSelector'")), - uu___51) in - let uu___51 = - let uu___52 = - let uu___53 = + uu___52) in + let uu___52 = + let uu___53 = + let uu___54 = text "Deprecated: use --extract instead; Only extract the specified modules (instead of the possibly-partial dependency graph)" in (FStar_Getopt.noshort, @@ -1515,10 +1514,10 @@ let rec (specs_with_types : ( SimpleStr "module_name")))), - uu___53) in - let uu___53 = - let uu___54 = - let uu___55 = + uu___54) in + let uu___54 = + let uu___55 = + let uu___56 = text "Deprecated: use --extract instead; Only extract modules in the specified namespace" in (FStar_Getopt.noshort, @@ -1528,20 +1527,20 @@ let rec (specs_with_types : (pp_lowercase, (SimpleStr "namespace name")))), - uu___55) in - let uu___55 = - let uu___56 = - let uu___57 = + uu___56) in + let uu___56 = + let uu___57 = + let uu___58 = text "Explicitly break the abstraction imposed by the interface of any implementation file that appears on the command line (use with care!)" in (FStar_Getopt.noshort, "expose_interfaces", (Const (Bool true)), - uu___57) in - let uu___57 = - let uu___58 = - let uu___59 = + uu___58) in + let uu___58 = + let uu___59 = + let uu___60 = text "Format of the messages emitted by F* (default `human`)" in (FStar_Getopt.noshort, @@ -1549,10 +1548,10 @@ let rec (specs_with_types : (EnumStr ["human"; "json"]), - uu___59) in - let uu___59 = - let uu___60 = - let uu___61 + uu___60) in + let uu___60 = + let uu___61 = + let uu___62 = text "Don't print unification variable numbers" in @@ -1562,11 +1561,11 @@ let rec (specs_with_types : Const (Bool true)), - uu___61) in - let uu___61 = - let uu___62 + uu___62) in + let uu___62 = + let uu___63 = - let uu___63 + let uu___64 = text "Read/write hints to dir/module_name.hints (instead of placing hint-file alongside source file)" in @@ -1576,26 +1575,26 @@ let rec (specs_with_types : (pp_validate_dir, (PathStr "dir"))), - uu___63) in - let uu___63 - = - let uu___64 + uu___64) in + let uu___64 = let uu___65 = + let uu___66 + = text "Read/write hints to path (instead of module-specific hints files; overrides hint_dir)" in (FStar_Getopt.noshort, "hint_file", (PathStr "path"), - uu___65) in - let uu___65 - = + uu___66) in let uu___66 = let uu___67 = + let uu___68 + = text "Print information regarding hints (deprecated; use --query_stats instead)" in (FStar_Getopt.noshort, @@ -1603,13 +1602,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___67) in - let uu___67 - = + uu___68) in let uu___68 = let uu___69 = + let uu___70 + = text "Legacy interactive mode; reads input from stdin" in (FStar_Getopt.noshort, @@ -1617,13 +1616,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___69) in - let uu___69 - = + uu___70) in let uu___70 = let uu___71 = + let uu___72 + = text "JSON-based interactive mode for IDEs" in (FStar_Getopt.noshort, @@ -1631,13 +1630,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___71) in - let uu___71 - = + uu___72) in let uu___72 = let uu___73 = + let uu___74 + = text "Disable identifier tables in IDE mode (temporary workaround useful in Steel)" in (FStar_Getopt.noshort, @@ -1645,13 +1644,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___73) in - let uu___73 - = + uu___74) in let uu___74 = let uu___75 = + let uu___76 + = text "Language Server Protocol-based interactive mode for IDEs" in (FStar_Getopt.noshort, @@ -1659,13 +1658,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___75) in - let uu___75 - = + uu___76) in let uu___76 = let uu___77 = + let uu___78 + = text "A directory in which to search for files included on the command line" in (FStar_Getopt.noshort, @@ -1673,13 +1672,13 @@ let rec (specs_with_types : (ReverseAccumulated (PathStr "path")), - uu___77) in - let uu___77 - = + uu___78) in let uu___78 = let uu___79 = + let uu___80 + = text "Parses and prettyprints the files included on the command line" in (FStar_Getopt.noshort, @@ -1687,13 +1686,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___79) in - let uu___79 - = + uu___80) in let uu___80 = let uu___81 = + let uu___82 + = text "Parses and prettyprints in place the files included on the command line" in (FStar_Getopt.noshort, @@ -1701,13 +1700,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___81) in - let uu___81 - = + uu___82) in let uu___82 = let uu___83 = + let uu___84 + = text "Force checking the files given as arguments even if they have valid checked files" in (102, @@ -1715,34 +1714,34 @@ let rec (specs_with_types : (Const (Bool true)), - uu___83) in - let uu___83 - = + uu___84) in let uu___84 = let uu___85 = + let uu___86 + = text "Set initial_fuel and max_fuel at once" in (FStar_Getopt.noshort, "fuel", (PostProcessed ((fun - uu___86 + uu___87 -> - match uu___86 + match uu___87 with | String s -> let p f = - let uu___87 + let uu___88 = FStar_Compiler_Util.int_of_string f in Int - uu___87 in - let uu___87 + uu___88 in + let uu___88 = match FStar_Compiler_Util.split @@ -1756,62 +1755,62 @@ let rec (specs_with_types : -> (f1, f2) | - uu___88 + uu___89 -> FStar_Compiler_Effect.failwith "unexpected value for --fuel" in - (match uu___87 + (match uu___88 with | (min, max) -> (( - let uu___89 + let uu___90 = p min in set_option "initial_fuel" - uu___89); - (let uu___90 + uu___90); + (let uu___91 = p max in set_option "max_fuel" - uu___90); + uu___91); String s)) | - uu___87 + uu___88 -> FStar_Compiler_Effect.failwith "impos"), (SimpleStr "non-negative integer or pair of non-negative integers"))), - uu___85) in - let uu___85 - = + uu___86) in let uu___86 = let uu___87 = + let uu___88 + = text "Set initial_ifuel and max_ifuel at once" in (FStar_Getopt.noshort, "ifuel", (PostProcessed ((fun - uu___88 + uu___89 -> - match uu___88 + match uu___89 with | String s -> let p f = - let uu___89 + let uu___90 = FStar_Compiler_Util.int_of_string f in Int - uu___89 in - let uu___89 + uu___90 in + let uu___90 = match FStar_Compiler_Util.split @@ -1825,86 +1824,86 @@ let rec (specs_with_types : -> (f1, f2) | - uu___90 + uu___91 -> FStar_Compiler_Effect.failwith "unexpected value for --ifuel" in - (match uu___89 + (match uu___90 with | (min, max) -> (( - let uu___91 + let uu___92 = p min in set_option "initial_ifuel" - uu___91); - (let uu___92 + uu___92); + (let uu___93 = p max in set_option "max_ifuel" - uu___92); + uu___93); String s)) | - uu___89 + uu___90 -> FStar_Compiler_Effect.failwith "impos"), (SimpleStr "non-negative integer or pair of non-negative integers"))), - uu___87) in - let uu___87 - = + uu___88) in let uu___88 = let uu___89 = + let uu___90 + = text "Number of unrolling of recursive functions to try initially (default 2)" in (FStar_Getopt.noshort, "initial_fuel", (IntStr "non-negative integer"), - uu___89) in - let uu___89 - = + uu___90) in let uu___90 = let uu___91 = + let uu___92 + = text "Number of unrolling of inductive datatypes to try at first (default 1)" in (FStar_Getopt.noshort, "initial_ifuel", (IntStr "non-negative integer"), - uu___91) in - let uu___91 - = + uu___92) in let uu___92 = let uu___93 = + let uu___94 + = text "Retain comments in the logged SMT queries (requires --log_queries or --log_failing_queries; default true)" in (FStar_Getopt.noshort, "keep_query_captions", BoolStr, - uu___93) in - let uu___93 - = + uu___94) in let uu___94 = let uu___95 = + let uu___96 + = text "Run the lax-type checker only (admit all verification conditions)" in (FStar_Getopt.noshort, "lax", (WithSideEffect ((fun - uu___96 + uu___97 -> if warn_unsafe @@ -1915,13 +1914,13 @@ let rec (specs_with_types : (Const (Bool true)))), - uu___95) in - let uu___95 - = + uu___96) in let uu___96 = let uu___97 = + let uu___98 + = text "Load OCaml module, compiling it if necessary" in (FStar_Getopt.noshort, @@ -1929,13 +1928,13 @@ let rec (specs_with_types : (ReverseAccumulated (PathStr "module")), - uu___97) in - let uu___97 - = + uu___98) in let uu___98 = let uu___99 = + let uu___100 + = text "Load compiled module, fails hard if the module is not already compiled" in (FStar_Getopt.noshort, @@ -1943,13 +1942,13 @@ let rec (specs_with_types : (ReverseAccumulated (PathStr "module")), - uu___99) in - let uu___99 - = + uu___100) in let uu___100 = let uu___101 = + let uu___102 + = text "Print types computed for data/val/let-bindings" in (FStar_Getopt.noshort, @@ -1957,13 +1956,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___101) in - let uu___101 - = + uu___102) in let uu___102 = let uu___103 = + let uu___104 + = text "Log the Z3 queries in several queries-*.smt2 files, as we go" in (FStar_Getopt.noshort, @@ -1971,13 +1970,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___103) in - let uu___103 - = + uu___104) in let uu___104 = let uu___105 = + let uu___106 + = text "As --log_queries, but only save the failing queries. Each query is\n saved in its own file regardless of whether they were checked during the\n same invocation. The SMT2 file names begin with \"failedQueries\"" in (FStar_Getopt.noshort, @@ -1985,39 +1984,39 @@ let rec (specs_with_types : (Const (Bool true)), - uu___105) in - let uu___105 - = + uu___106) in let uu___106 = let uu___107 = + let uu___108 + = text "Number of unrolling of recursive functions to try at most (default 8)" in (FStar_Getopt.noshort, "max_fuel", (IntStr "non-negative integer"), - uu___107) in - let uu___107 - = + uu___108) in let uu___108 = let uu___109 = + let uu___110 + = text "Number of unrolling of inductive datatypes to try at most (default 2)" in (FStar_Getopt.noshort, "max_ifuel", (IntStr "non-negative integer"), - uu___109) in - let uu___109 - = + uu___110) in let uu___110 = let uu___111 = + let uu___112 + = text "Trigger various specializations for compiling the F* compiler itself (not meant for user code)" in (FStar_Getopt.noshort, @@ -2025,13 +2024,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___111) in - let uu___111 - = + uu___112) in let uu___112 = let uu___113 = + let uu___114 + = text "Ignore the default module search paths" in (FStar_Getopt.noshort, @@ -2039,13 +2038,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___113) in - let uu___113 - = + uu___114) in let uu___114 = let uu___115 = + let uu___116 + = text "Deprecated: use --extract instead; Do not extract code from this module" in (FStar_Getopt.noshort, @@ -2053,13 +2052,13 @@ let rec (specs_with_types : (Accumulated (PathStr "module name")), - uu___115) in - let uu___115 - = + uu___116) in let uu___116 = let uu___117 = + let uu___118 + = text "Suppress location information in the generated OCaml output (only relevant with --codegen OCaml)" in (FStar_Getopt.noshort, @@ -2067,13 +2066,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___117) in - let uu___117 - = + uu___118) in let uu___118 = let uu___119 = + let uu___120 + = text "Do not send any queries to the SMT solver, and fail on them instead" in (FStar_Getopt.noshort, @@ -2081,13 +2080,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___119) in - let uu___119 - = + uu___120) in let uu___120 = let uu___121 = + let uu___122 + = text "Extract top-level pure terms after normalizing them. This can lead to very large code, but can result in more partial evaluation and compile-time specialization." in (FStar_Getopt.noshort, @@ -2095,26 +2094,26 @@ let rec (specs_with_types : (Const (Bool true)), - uu___121) in - let uu___121 - = + uu___122) in let uu___122 = let uu___123 = + let uu___124 + = text "Place KaRaMeL extraction output in file . The path can be relative or absolute and does not dependon the --odir option." in (FStar_Getopt.noshort, "krmloutput", (PathStr "filename"), - uu___123) in - let uu___123 - = + uu___124) in let uu___124 = let uu___125 = + let uu___126 + = text "Place output in directory dir" in (FStar_Getopt.noshort, @@ -2123,39 +2122,39 @@ let rec (specs_with_types : (pp_validate_dir, (PathStr "dir"))), - uu___125) in - let uu___125 - = + uu___126) in let uu___126 = let uu___127 = + let uu___128 + = text "Output the result of --dep into this file instead of to standard output." in (FStar_Getopt.noshort, "output_deps_to", (PathStr "file"), - uu___127) in - let uu___127 - = + uu___128) in let uu___128 = let uu___129 = + let uu___130 + = text "Use a custom Prims.fst file. Do not use if you do not know exactly what you're doing." in (FStar_Getopt.noshort, "prims", (PathStr "file"), - uu___129) in - let uu___129 - = + uu___130) in let uu___130 = let uu___131 = + let uu___132 + = text "Print the types of bound variables" in (FStar_Getopt.noshort, @@ -2163,13 +2162,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___131) in - let uu___131 - = + uu___132) in let uu___132 = let uu___133 = + let uu___134 + = text "Print inferred predicate transformers for all computation types" in (FStar_Getopt.noshort, @@ -2177,13 +2176,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___133) in - let uu___133 - = + uu___134) in let uu___134 = let uu___135 = + let uu___136 + = text "Print the errors generated by declarations marked with expect_failure, useful for debugging error locations" in (FStar_Getopt.noshort, @@ -2191,13 +2190,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___135) in - let uu___135 - = + uu___136) in let uu___136 = let uu___137 = + let uu___138 + = text "Print full names of variables" in (FStar_Getopt.noshort, @@ -2205,13 +2204,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___137) in - let uu___137 - = + uu___138) in let uu___138 = let uu___139 = + let uu___140 + = text "Print implicit arguments" in (FStar_Getopt.noshort, @@ -2219,13 +2218,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___139) in - let uu___139 - = + uu___140) in let uu___140 = let uu___141 = + let uu___142 + = text "Print universes" in (FStar_Getopt.noshort, @@ -2233,13 +2232,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___141) in - let uu___141 - = + uu___142) in let uu___142 = let uu___143 = + let uu___144 + = text "Print Z3 statistics for each SMT query (details such as relevant modules, facts, etc. for each proof)" in (FStar_Getopt.noshort, @@ -2247,13 +2246,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___143) in - let uu___143 - = + uu___144) in let uu___144 = let uu___145 = + let uu___146 + = text "Print full names (deprecated; use --print_full_names instead)" in (FStar_Getopt.noshort, @@ -2261,13 +2260,13 @@ let rec (specs_with_types : (Const (Bool true)), - uu___145) in - let uu___145 - = + uu___146) in let uu___146 = let uu___147 = + let uu___148 + = text "Proof recovery mode: before failing an SMT query, retry 3 times, increasing rlimits. If the query goes through after retrying, verification will succeed, but a warning will be emitted. This feature is useful to restore a project after some change to its libraries or F* upgrade. Importantly, then, this option cannot be used in a pragma (#set-options, etc)." in (FStar_Getopt.noshort, @@ -2275,15 +2274,15 @@ let rec (specs_with_types : (Const (Bool true)), - uu___147) in - let uu___147 - = + uu___148) in let uu___148 = let uu___149 = let uu___150 = + let uu___151 + = text "Repeats SMT queries to check for robustness" in let uu___152 @@ -2334,15 +2333,15 @@ let rec (specs_with_types : uu___153 uu___154 in FStar_Pprint.op_Hat_Hat - uu___150 + uu___151 uu___152 in (FStar_Getopt.noshort, "quake", (PostProcessed ((fun - uu___150 + uu___151 -> - match uu___150 + match uu___151 with | String s @@ -2378,11 +2377,11 @@ let rec (specs_with_types : "impos"), (SimpleStr "positive integer or pair of positive integers"))), - uu___149) in - let uu___149 - = + uu___150) in let uu___150 = + let uu___151 + = let uu___152 = text @@ -3641,188 +3640,188 @@ let rec (specs_with_types : uu___153 :: uu___154 in - uu___150 + uu___151 :: uu___152 in - uu___148 + uu___149 :: - uu___149 in - uu___146 + uu___150 in + uu___147 :: - uu___147 in - uu___144 + uu___148 in + uu___145 :: - uu___145 in - uu___142 + uu___146 in + uu___143 :: - uu___143 in - uu___140 + uu___144 in + uu___141 :: - uu___141 in - uu___138 + uu___142 in + uu___139 :: - uu___139 in - uu___136 + uu___140 in + uu___137 :: - uu___137 in - uu___134 + uu___138 in + uu___135 :: - uu___135 in - uu___132 + uu___136 in + uu___133 :: - uu___133 in - uu___130 + uu___134 in + uu___131 :: - uu___131 in - uu___128 + uu___132 in + uu___129 :: - uu___129 in - uu___126 + uu___130 in + uu___127 :: - uu___127 in - uu___124 + uu___128 in + uu___125 :: - uu___125 in - uu___122 + uu___126 in + uu___123 :: - uu___123 in - uu___120 + uu___124 in + uu___121 :: - uu___121 in - uu___118 + uu___122 in + uu___119 :: - uu___119 in - uu___116 + uu___120 in + uu___117 :: - uu___117 in - uu___114 + uu___118 in + uu___115 :: - uu___115 in - uu___112 + uu___116 in + uu___113 :: - uu___113 in - uu___110 + uu___114 in + uu___111 :: - uu___111 in - uu___108 + uu___112 in + uu___109 :: - uu___109 in - uu___106 + uu___110 in + uu___107 :: - uu___107 in - uu___104 + uu___108 in + uu___105 :: - uu___105 in - uu___102 + uu___106 in + uu___103 :: - uu___103 in - uu___100 + uu___104 in + uu___101 :: - uu___101 in - uu___98 + uu___102 in + uu___99 :: - uu___99 in - uu___96 + uu___100 in + uu___97 :: - uu___97 in - uu___94 + uu___98 in + uu___95 :: - uu___95 in - uu___92 + uu___96 in + uu___93 :: - uu___93 in - uu___90 + uu___94 in + uu___91 :: - uu___91 in - uu___88 + uu___92 in + uu___89 :: - uu___89 in - uu___86 + uu___90 in + uu___87 :: - uu___87 in - uu___84 + uu___88 in + uu___85 :: - uu___85 in - uu___82 + uu___86 in + uu___83 :: - uu___83 in - uu___80 + uu___84 in + uu___81 :: - uu___81 in - uu___78 + uu___82 in + uu___79 :: - uu___79 in - uu___76 + uu___80 in + uu___77 :: - uu___77 in - uu___74 + uu___78 in + uu___75 :: - uu___75 in - uu___72 + uu___76 in + uu___73 :: - uu___73 in - uu___70 + uu___74 in + uu___71 :: - uu___71 in - uu___68 + uu___72 in + uu___69 :: - uu___69 in - uu___66 + uu___70 in + uu___67 :: - uu___67 in - uu___64 + uu___68 in + uu___65 :: - uu___65 in - uu___62 :: - uu___63 in - uu___60 :: - uu___61 in - uu___58 :: - uu___59 in - uu___56 :: - uu___57 in - uu___54 :: uu___55 in - uu___52 :: uu___53 in - uu___50 :: uu___51 in - uu___48 :: uu___49 in - uu___46 :: uu___47 in - uu___44 :: uu___45 in - uu___42 :: uu___43 in - uu___40 :: uu___41 in - uu___38 :: uu___39 in - uu___36 :: uu___37 in - uu___34 :: uu___35 in - uu___32 :: uu___33 in - uu___30 :: uu___31 in - uu___28 :: uu___29 in - uu___26 :: uu___27 in - uu___24 :: uu___25 in - uu___22 :: uu___23 in - uu___20 :: uu___21 in - uu___18 :: uu___19 in - uu___16 :: uu___17 in - uu___14 :: uu___15 in - uu___12 :: uu___13 in - uu___10 :: uu___11 in - uu___8 :: uu___9 in - uu___6 :: uu___7 in - uu___4 :: uu___5 in - uu___2 :: uu___3 in - uu___ :: uu___1 + uu___66 in + uu___63 :: + uu___64 in + uu___61 :: + uu___62 in + uu___59 :: + uu___60 in + uu___57 :: + uu___58 in + uu___55 :: uu___56 in + uu___53 :: uu___54 in + uu___51 :: uu___52 in + uu___49 :: uu___50 in + uu___47 :: uu___48 in + uu___45 :: uu___46 in + uu___43 :: uu___44 in + uu___41 :: uu___42 in + uu___39 :: uu___40 in + uu___37 :: uu___38 in + uu___35 :: uu___36 in + uu___33 :: uu___34 in + uu___31 :: uu___32 in + uu___29 :: uu___30 in + uu___27 :: uu___28 in + uu___25 :: uu___26 in + uu___23 :: uu___24 in + uu___21 :: uu___22 in + uu___19 :: uu___20 in + uu___17 :: uu___18 in + uu___15 :: uu___16 in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + uu___9 :: uu___10 in + uu___7 :: uu___8 in + uu___5 :: uu___6 in + uu___3 :: uu___4 in + uu___ :: uu___2 and (specs : Prims.bool -> (FStar_Getopt.opt * FStar_Pprint.document) Prims.list) = fun warn_unsafe -> let uu___ = specs_with_types warn_unsafe in FStar_Compiler_List.map - (fun uu___1 -> - match uu___1 with + (fun uu___2 -> + match uu___2 with | (short, long, typ, doc) -> - let uu___2 = - let uu___3 = - let uu___4 = arg_spec_of_opt_type long typ in - (short, long, uu___4) in - mk_spec uu___3 in - (uu___2, doc)) uu___ + let uu___3 = + let uu___4 = + let uu___5 = arg_spec_of_opt_type long typ in + (short, long, uu___5) in + mk_spec uu___4 in + (uu___3, doc)) uu___ let (settable : Prims.string -> Prims.bool) = fun uu___ -> match uu___ with @@ -3914,7 +3913,7 @@ let (settable : Prims.string -> Prims.bool) = | "profile_group_by_decl" -> true | "profile_component" -> true | "profile" -> true - | uu___1 -> false + | uu___2 -> false let (all_specs : (FStar_Getopt.opt * FStar_Pprint.document) Prims.list) = specs true let (all_specs_getopt : FStar_Getopt.opt Prims.list) = @@ -3929,9 +3928,9 @@ let (settable_specs : = FStar_Compiler_List.filter (fun uu___ -> - match uu___ with | ((uu___1, x, uu___2), uu___3) -> settable x) + match uu___ with | ((uu___2, x, uu___3), uu___4) -> settable x) all_specs -let (uu___753 : +let (uu___2 : (((unit -> FStar_Getopt.parse_cmdline_res) -> unit) * (unit -> FStar_Getopt.parse_cmdline_res))) = @@ -3940,19 +3939,19 @@ let (uu___753 : FStar_Compiler_Effect.op_Colon_Equals callback (FStar_Pervasives_Native.Some f) in let call uu___ = - let uu___1 = FStar_Compiler_Effect.op_Bang callback in - match uu___1 with + let uu___3 = FStar_Compiler_Effect.op_Bang callback in + match uu___3 with | FStar_Pervasives_Native.None -> FStar_Compiler_Effect.failwith "Error flags callback not yet set" | FStar_Pervasives_Native.Some f -> f () in (set1, call) let (set_error_flags_callback_aux : (unit -> FStar_Getopt.parse_cmdline_res) -> unit) = - match uu___753 with + match uu___2 with | (set_error_flags_callback_aux1, set_error_flags) -> set_error_flags_callback_aux1 let (set_error_flags : unit -> FStar_Getopt.parse_cmdline_res) = - match uu___753 with + match uu___2 with | (set_error_flags_callback_aux1, set_error_flags1) -> set_error_flags1 let (set_error_flags_callback : (unit -> FStar_Getopt.parse_cmdline_res) -> unit) = @@ -3978,10 +3977,10 @@ let rec (parse_filename_arg : else (if enable_filenames then - (let uu___2 = - let uu___3 = FStar_Compiler_Effect.op_Bang file_list_ in - FStar_Compiler_List.op_At uu___3 [arg] in - FStar_Compiler_Effect.op_Colon_Equals file_list_ uu___2) + (let uu___4 = + let uu___5 = FStar_Compiler_Effect.op_Bang file_list_ in + FStar_Compiler_List.op_At uu___5 [arg] in + FStar_Compiler_Effect.op_Colon_Equals file_list_ uu___4) else (); FStar_Getopt.Success) let (parse_cmd_line : @@ -3991,11 +3990,11 @@ let (parse_cmd_line : FStar_Getopt.parse_cmdline all_specs_getopt (parse_filename_arg all_specs_getopt true) in let res1 = if res = FStar_Getopt.Success then set_error_flags () else res in - let uu___1 = - let uu___2 = FStar_Compiler_Effect.op_Bang file_list_ in + let uu___3 = + let uu___4 = FStar_Compiler_Effect.op_Bang file_list_ in FStar_Compiler_List.map FStar_Common.try_convert_file_name_to_mixed - uu___2 in - (res1, uu___1) + uu___4 in + (res1, uu___3) let (file_list : unit -> Prims.string Prims.list) = fun uu___ -> FStar_Compiler_Effect.op_Bang file_list_ let (restore_cmd_line_options : Prims.bool -> FStar_Getopt.parse_cmdline_res) @@ -4004,30 +4003,30 @@ let (restore_cmd_line_options : Prims.bool -> FStar_Getopt.parse_cmdline_res) let old_verify_module = get_verify_module () in if should_clear then clear () else init (); (let specs1 = - let uu___1 = specs false in - FStar_Compiler_List.map FStar_Pervasives_Native.fst uu___1 in + let uu___3 = specs false in + FStar_Compiler_List.map FStar_Pervasives_Native.fst uu___3 in let r = FStar_Getopt.parse_cmdline specs1 (parse_filename_arg specs1 false) in - (let uu___2 = - let uu___3 = - let uu___4 = - FStar_Compiler_List.map (fun uu___5 -> String uu___5) + (let uu___4 = + let uu___5 = + let uu___6 = + FStar_Compiler_List.map (fun uu___7 -> String uu___7) old_verify_module in - List uu___4 in - ("verify_module", uu___3) in - set_option' uu___2); + List uu___6 in + ("verify_module", uu___5) in + set_option' uu___4); r) let (module_name_of_file_name : Prims.string -> Prims.string) = fun f -> let f1 = FStar_Compiler_Util.basename f in let f2 = let uu___ = - let uu___1 = - let uu___2 = - let uu___3 = FStar_Compiler_Util.get_file_extension f1 in - FStar_Compiler_String.length uu___3 in - (FStar_Compiler_String.length f1) - uu___2 in - uu___1 - Prims.int_one in + let uu___3 = + let uu___4 = + let uu___5 = FStar_Compiler_Util.get_file_extension f1 in + FStar_Compiler_String.length uu___5 in + (FStar_Compiler_String.length f1) - uu___4 in + uu___3 - Prims.int_one in FStar_Compiler_String.substring f1 Prims.int_zero uu___ in FStar_Compiler_String.lowercase f2 let (should_check : Prims.string -> Prims.bool) = @@ -4061,17 +4060,17 @@ let (read_fstar_include : FStar_Compiler_List.filter (fun s1 -> (s1 <> "") && - (let uu___1 = - let uu___2 = + (let uu___3 = + let uu___4 = FStar_Compiler_String.get s1 Prims.int_zero in - uu___2 = 35 in - Prims.op_Negation uu___1)) + uu___4 = 35 in + Prims.op_Negation uu___3)) (FStar_Compiler_String.split [10] s) in FStar_Pervasives_Native.Some subdirs) () with | uu___ -> - ((let uu___2 = FStar_Compiler_String.op_Hat "Could not read " fn in - FStar_Compiler_Effect.failwith uu___2); + ((let uu___4 = FStar_Compiler_String.op_Hat "Could not read " fn in + FStar_Compiler_Effect.failwith uu___4); FStar_Pervasives_Native.None) let rec (expand_include_d : Prims.string -> Prims.string Prims.list) = fun dirname -> @@ -4084,68 +4083,68 @@ let rec (expand_include_d : Prims.string -> Prims.string Prims.list) = let uu___ = FStar_Compiler_List.collect (fun subd -> - let uu___1 = - let uu___2 = FStar_Compiler_String.op_Hat "/" subd in - FStar_Compiler_String.op_Hat dirname uu___2 in - expand_include_d uu___1) subdirs in + let uu___3 = + let uu___4 = FStar_Compiler_String.op_Hat "/" subd in + FStar_Compiler_String.op_Hat dirname uu___4 in + expand_include_d uu___3) subdirs in dirname :: uu___ else [dirname] let (expand_include_ds : Prims.string Prims.list -> Prims.string Prims.list) = fun dirnames -> FStar_Compiler_List.collect expand_include_d dirnames let (lib_root : unit -> Prims.string FStar_Pervasives_Native.option) = fun uu___ -> - let uu___1 = get_no_default_includes () in - if uu___1 + let uu___3 = get_no_default_includes () in + if uu___3 then FStar_Pervasives_Native.None else - (let uu___3 = + (let uu___5 = FStar_Compiler_Util.expand_environment_variable "FSTAR_LIB" in - match uu___3 with + match uu___5 with | FStar_Pervasives_Native.Some s -> FStar_Pervasives_Native.Some s | FStar_Pervasives_Native.None -> - let uu___4 = - let uu___5 = + let uu___6 = + let uu___7 = FStar_Compiler_String.op_Hat fstar_bin_directory "/../ulib" in - FStar_Compiler_Util.file_exists uu___5 in - if uu___4 + FStar_Compiler_Util.file_exists uu___7 in + if uu___6 then - let uu___5 = + let uu___7 = FStar_Compiler_String.op_Hat fstar_bin_directory "/../ulib" in - FStar_Pervasives_Native.Some uu___5 + FStar_Pervasives_Native.Some uu___7 else - (let uu___6 = - let uu___7 = + (let uu___8 = + let uu___9 = FStar_Compiler_String.op_Hat fstar_bin_directory "/../lib/fstar" in - FStar_Compiler_Util.file_exists uu___7 in - if uu___6 + FStar_Compiler_Util.file_exists uu___9 in + if uu___8 then - let uu___7 = + let uu___9 = FStar_Compiler_String.op_Hat fstar_bin_directory "/../lib/fstar" in - FStar_Pervasives_Native.Some uu___7 + FStar_Pervasives_Native.Some uu___9 else FStar_Pervasives_Native.None)) let (lib_paths : unit -> Prims.string Prims.list) = fun uu___ -> - let uu___1 = - let uu___2 = lib_root () in FStar_Common.option_to_list uu___2 in - expand_include_ds uu___1 + let uu___3 = + let uu___4 = lib_root () in FStar_Common.option_to_list uu___4 in + expand_include_ds uu___3 let (include_path : unit -> Prims.string Prims.list) = fun uu___ -> let cache_dir = - let uu___1 = get_cache_dir () in - match uu___1 with + let uu___3 = get_cache_dir () in + match uu___3 with | FStar_Pervasives_Native.None -> [] | FStar_Pervasives_Native.Some c -> [c] in let include_paths = - let uu___1 = get_include () in expand_include_ds uu___1 in - let uu___1 = - let uu___2 = lib_paths () in - let uu___3 = - let uu___4 = expand_include_d "." in - FStar_Compiler_List.op_At include_paths uu___4 in - FStar_Compiler_List.op_At uu___2 uu___3 in - FStar_Compiler_List.op_At cache_dir uu___1 + let uu___3 = get_include () in expand_include_ds uu___3 in + let uu___3 = + let uu___4 = lib_paths () in + let uu___5 = + let uu___6 = expand_include_d "." in + FStar_Compiler_List.op_At include_paths uu___6 in + FStar_Compiler_List.op_At uu___4 uu___5 in + FStar_Compiler_List.op_At cache_dir uu___3 let (find_file : Prims.string -> Prims.string FStar_Pervasives_Native.option) = let file_map = FStar_Compiler_Util.smap_create (Prims.of_int (100)) in @@ -4156,20 +4155,20 @@ let (find_file : Prims.string -> Prims.string FStar_Pervasives_Native.option) | FStar_Pervasives_Native.None -> let result = try - (fun uu___1 -> + (fun uu___3 -> match () with | () -> - let uu___2 = FStar_Compiler_Util.is_path_absolute filename in - if uu___2 + let uu___4 = FStar_Compiler_Util.is_path_absolute filename in + if uu___4 then (if FStar_Compiler_Util.file_exists filename then FStar_Pervasives_Native.Some filename else FStar_Pervasives_Native.None) else - (let uu___4 = - let uu___5 = include_path () in - FStar_Compiler_List.rev uu___5 in - FStar_Compiler_Util.find_map uu___4 + (let uu___6 = + let uu___7 = include_path () in + FStar_Compiler_List.rev uu___7 in + FStar_Compiler_Util.find_map uu___6 (fun p -> let path = if p = "." @@ -4178,57 +4177,57 @@ let (find_file : Prims.string -> Prims.string FStar_Pervasives_Native.option) if FStar_Compiler_Util.file_exists path then FStar_Pervasives_Native.Some path else FStar_Pervasives_Native.None))) () - with | uu___1 -> FStar_Pervasives_Native.None in + with | uu___3 -> FStar_Pervasives_Native.None in (if FStar_Compiler_Option.isSome result then FStar_Compiler_Util.smap_add file_map filename result else (); result) let (prims : unit -> Prims.string) = fun uu___ -> - let uu___1 = get_prims () in - match uu___1 with + let uu___3 = get_prims () in + match uu___3 with | FStar_Pervasives_Native.None -> let filename = "Prims.fst" in - let uu___2 = find_file filename in - (match uu___2 with + let uu___4 = find_file filename in + (match uu___4 with | FStar_Pervasives_Native.Some result -> result | FStar_Pervasives_Native.None -> - let uu___3 = + let uu___5 = FStar_Compiler_Util.format1 "unable to find required file \"%s\" in the module search path.\n" filename in - FStar_Compiler_Effect.failwith uu___3) + FStar_Compiler_Effect.failwith uu___5) | FStar_Pervasives_Native.Some x -> x let (prims_basename : unit -> Prims.string) = - fun uu___ -> let uu___1 = prims () in FStar_Compiler_Util.basename uu___1 + fun uu___ -> let uu___3 = prims () in FStar_Compiler_Util.basename uu___3 let (pervasives : unit -> Prims.string) = fun uu___ -> let filename = "FStar.Pervasives.fsti" in - let uu___1 = find_file filename in - match uu___1 with + let uu___3 = find_file filename in + match uu___3 with | FStar_Pervasives_Native.Some result -> result | FStar_Pervasives_Native.None -> - let uu___2 = + let uu___4 = FStar_Compiler_Util.format1 "unable to find required file \"%s\" in the module search path.\n" filename in - FStar_Compiler_Effect.failwith uu___2 + FStar_Compiler_Effect.failwith uu___4 let (pervasives_basename : unit -> Prims.string) = fun uu___ -> - let uu___1 = pervasives () in FStar_Compiler_Util.basename uu___1 + let uu___3 = pervasives () in FStar_Compiler_Util.basename uu___3 let (pervasives_native_basename : unit -> Prims.string) = fun uu___ -> let filename = "FStar.Pervasives.Native.fst" in - let uu___1 = find_file filename in - match uu___1 with + let uu___3 = find_file filename in + match uu___3 with | FStar_Pervasives_Native.Some result -> FStar_Compiler_Util.basename result | FStar_Pervasives_Native.None -> - let uu___2 = + let uu___4 = FStar_Compiler_Util.format1 "unable to find required file \"%s\" in the module search path.\n" filename in - FStar_Compiler_Effect.failwith uu___2 + FStar_Compiler_Effect.failwith uu___4 let (prepend_output_dir : Prims.string -> Prims.string) = fun fname -> let uu___ = get_odir () in @@ -4242,8 +4241,8 @@ let (prepend_cache_dir : Prims.string -> Prims.string) = match uu___ with | FStar_Pervasives_Native.None -> fpath | FStar_Pervasives_Native.Some x -> - let uu___1 = FStar_Compiler_Util.basename fpath in - FStar_Compiler_Util.join_paths x uu___1 + let uu___3 = FStar_Compiler_Util.basename fpath in + FStar_Compiler_Util.join_paths x uu___3 let (path_of_text : Prims.string -> Prims.string Prims.list) = fun text -> FStar_Compiler_String.split [46] text let (parse_settings : @@ -4268,9 +4267,9 @@ let (parse_settings : if FStar_Compiler_Util.starts_with s "-" then (let path = - let uu___2 = + let uu___4 = FStar_Compiler_Util.substring_from s Prims.int_one in - path_of_text uu___2 in + path_of_text uu___4 in (path, false)) else (let s1 = @@ -4288,13 +4287,13 @@ let (parse_settings : with_cache (fun s2 -> let s3 = FStar_Compiler_Util.replace_char s2 32 44 in - let uu___2 = - let uu___3 = + let uu___4 = + let uu___5 = FStar_Compiler_List.concatMap (fun s4 -> FStar_Compiler_Util.split s4 ",") (FStar_Compiler_Util.splitlines s3) in - FStar_Compiler_List.filter (fun s4 -> s4 <> "") uu___3 in - FStar_Compiler_List.map parse_one_setting uu___2) s1) ns in + FStar_Compiler_List.filter (fun s4 -> s4 <> "") uu___5 in + FStar_Compiler_List.map parse_one_setting uu___4) s1) ns in FStar_Compiler_List.rev uu___ let (admit_smt_queries : unit -> Prims.bool) = fun uu___ -> get_admit_smt_queries () @@ -4302,26 +4301,26 @@ let (admit_except : unit -> Prims.string FStar_Pervasives_Native.option) = fun uu___ -> get_admit_except () let (compat_pre_core_should_register : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_compat_pre_core () in - match uu___1 with - | FStar_Pervasives_Native.Some uu___2 when uu___2 = Prims.int_zero -> + let uu___3 = get_compat_pre_core () in + match uu___3 with + | FStar_Pervasives_Native.Some uu___4 when uu___4 = Prims.int_zero -> false - | uu___2 -> true + | uu___4 -> true let (compat_pre_core_should_check : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_compat_pre_core () in - match uu___1 with - | FStar_Pervasives_Native.Some uu___2 when uu___2 = Prims.int_zero -> + let uu___3 = get_compat_pre_core () in + match uu___3 with + | FStar_Pervasives_Native.Some uu___4 when uu___4 = Prims.int_zero -> false - | FStar_Pervasives_Native.Some uu___2 when uu___2 = Prims.int_one -> + | FStar_Pervasives_Native.Some uu___4 when uu___4 = Prims.int_one -> false - | uu___2 -> true + | uu___4 -> true let (compat_pre_core_set : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_compat_pre_core () in - match uu___1 with + let uu___3 = get_compat_pre_core () in + match uu___3 with | FStar_Pervasives_Native.None -> false - | uu___2 -> true + | uu___4 -> true let (compat_pre_typed_indexed_effects : unit -> Prims.bool) = fun uu___ -> get_compat_pre_typed_indexed_effects () let (disallow_unification_guards : unit -> Prims.bool) = @@ -4341,7 +4340,7 @@ let (parse_codegen : | "krml" -> FStar_Pervasives_Native.Some Krml | "Plugin" -> FStar_Pervasives_Native.Some Plugin | "Extension" -> FStar_Pervasives_Native.Some Extension - | uu___1 -> FStar_Pervasives_Native.None + | uu___3 -> FStar_Pervasives_Native.None let (print_codegen : codegen_t -> Prims.string) = fun uu___ -> match uu___ with @@ -4352,29 +4351,29 @@ let (print_codegen : codegen_t -> Prims.string) = | Extension -> "Extension" let (codegen : unit -> codegen_t FStar_Pervasives_Native.option) = fun uu___ -> - let uu___1 = get_codegen () in - FStar_Compiler_Util.map_opt uu___1 + let uu___3 = get_codegen () in + FStar_Compiler_Util.map_opt uu___3 (fun s -> - let uu___2 = parse_codegen s in FStar_Compiler_Util.must uu___2) + let uu___4 = parse_codegen s in FStar_Compiler_Util.must uu___4) let (codegen_libs : unit -> Prims.string Prims.list Prims.list) = fun uu___ -> - let uu___1 = get_codegen_lib () in - FStar_Compiler_List.map (fun x -> FStar_Compiler_Util.split x ".") uu___1 + let uu___3 = get_codegen_lib () in + FStar_Compiler_List.map (fun x -> FStar_Compiler_Util.split x ".") uu___3 let (profile_group_by_decl : unit -> Prims.bool) = fun uu___ -> get_profile_group_by_decl () let (defensive : unit -> Prims.bool) = - fun uu___ -> let uu___1 = get_defensive () in uu___1 <> "no" + fun uu___ -> let uu___3 = get_defensive () in uu___3 <> "no" let (defensive_error : unit -> Prims.bool) = - fun uu___ -> let uu___1 = get_defensive () in uu___1 = "error" + fun uu___ -> let uu___3 = get_defensive () in uu___3 = "error" let (defensive_abort : unit -> Prims.bool) = - fun uu___ -> let uu___1 = get_defensive () in uu___1 = "abort" + fun uu___ -> let uu___3 = get_defensive () in uu___3 = "abort" let (dep : unit -> Prims.string FStar_Pervasives_Native.option) = fun uu___ -> get_dep () let (detail_errors : unit -> Prims.bool) = fun uu___ -> get_detail_errors () let (detail_hint_replay : unit -> Prims.bool) = fun uu___ -> get_detail_hint_replay () let (any_dump_module : unit -> Prims.bool) = - fun uu___ -> let uu___1 = get_dump_module () in Prims.uu___is_Cons uu___1 + fun uu___ -> let uu___3 = get_dump_module () in Prims.uu___is_Cons uu___3 let (dump_module : Prims.string -> Prims.bool) = fun s -> let uu___ = get_dump_module () in @@ -4387,19 +4386,19 @@ let (expose_interfaces : unit -> Prims.bool) = fun uu___ -> get_expose_interfaces () let (message_format : unit -> message_format_t) = fun uu___ -> - let uu___1 = get_message_format () in - match uu___1 with + let uu___3 = get_message_format () in + match uu___3 with | "human" -> Human | "json" -> Json | illegal -> - let uu___2 = - let uu___3 = + let uu___4 = + let uu___5 = FStar_Compiler_String.op_Hat illegal "`. This should be impossible: `message_format` was supposed to be validated." in FStar_Compiler_String.op_Hat "print_issue: option `message_format` was expected to be `human` or `json`, not `" - uu___3 in - FStar_Compiler_Effect.failwith uu___2 + uu___5 in + FStar_Compiler_Effect.failwith uu___4 let (force : unit -> Prims.bool) = fun uu___ -> get_force () let (full_context_dependency : unit -> Prims.bool) = fun uu___ -> true let (hide_uvar_nums : unit -> Prims.bool) = @@ -4417,12 +4416,12 @@ let (hint_file_for_src : Prims.string -> Prims.string) = | FStar_Pervasives_Native.Some fn -> fn | FStar_Pervasives_Native.None -> let file_name = - let uu___1 = hint_dir () in - match uu___1 with + let uu___3 = hint_dir () in + match uu___3 with | FStar_Pervasives_Native.Some dir -> - let uu___2 = FStar_Compiler_Util.basename src_filename in - FStar_Compiler_Util.concat_dir_filename dir uu___2 - | uu___2 -> src_filename in + let uu___4 = FStar_Compiler_Util.basename src_filename in + FStar_Compiler_Util.concat_dir_filename dir uu___4 + | uu___4 -> src_filename in FStar_Compiler_Util.format1 "%s.hints" file_name let (ide : unit -> Prims.bool) = fun uu___ -> get_ide () let (ide_id_info_off : unit -> Prims.bool) = @@ -4438,7 +4437,7 @@ let (ide_file_name_st : | FStar_Pervasives_Native.None -> FStar_Compiler_Effect.op_Colon_Equals v (FStar_Pervasives_Native.Some f) - | FStar_Pervasives_Native.Some uu___1 -> + | FStar_Pervasives_Native.Some uu___3 -> FStar_Compiler_Effect.failwith "ide_file_name_st already set" in let get uu___ = FStar_Compiler_Effect.op_Bang v in (set1, get) let (set_ide_filename : Prims.string -> unit) = @@ -4450,12 +4449,12 @@ let (print_in_place : unit -> Prims.bool) = fun uu___ -> get_print_in_place () let (initial_fuel : unit -> Prims.int) = fun uu___ -> - let uu___1 = get_initial_fuel () in - let uu___2 = get_max_fuel () in Prims.min uu___1 uu___2 + let uu___3 = get_initial_fuel () in + let uu___4 = get_max_fuel () in Prims.min uu___3 uu___4 let (initial_ifuel : unit -> Prims.int) = fun uu___ -> - let uu___1 = get_initial_ifuel () in - let uu___2 = get_max_ifuel () in Prims.min uu___1 uu___2 + let uu___3 = get_initial_ifuel () in + let uu___4 = get_max_ifuel () in Prims.min uu___3 uu___4 let (interactive : unit -> Prims.bool) = fun uu___ -> ((get_in ()) || (get_ide ())) || (get_lsp ()) let (lax : unit -> Prims.bool) = fun uu___ -> get_lax () @@ -4539,19 +4538,19 @@ let (smtencoding_elim_box : unit -> Prims.bool) = fun uu___ -> get_smtencoding_elim_box () let (smtencoding_nl_arith_native : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_smtencoding_nl_arith_repr () in uu___1 = "native" + let uu___3 = get_smtencoding_nl_arith_repr () in uu___3 = "native" let (smtencoding_nl_arith_wrapped : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_smtencoding_nl_arith_repr () in uu___1 = "wrapped" + let uu___3 = get_smtencoding_nl_arith_repr () in uu___3 = "wrapped" let (smtencoding_nl_arith_default : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_smtencoding_nl_arith_repr () in uu___1 = "boxwrap" + let uu___3 = get_smtencoding_nl_arith_repr () in uu___3 = "boxwrap" let (smtencoding_l_arith_native : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_smtencoding_l_arith_repr () in uu___1 = "native" + let uu___3 = get_smtencoding_l_arith_repr () in uu___3 = "native" let (smtencoding_l_arith_default : unit -> Prims.bool) = fun uu___ -> - let uu___1 = get_smtencoding_l_arith_repr () in uu___1 = "boxwrap" + let uu___3 = get_smtencoding_l_arith_repr () in uu___3 = "boxwrap" let (smtencoding_valid_intro : unit -> Prims.bool) = fun uu___ -> get_smtencoding_valid_intro () let (smtencoding_valid_elim : unit -> Prims.bool) = @@ -4566,9 +4565,9 @@ let (parse_split_queries : | uu___ -> FStar_Pervasives_Native.None let (split_queries : unit -> split_queries_t) = fun uu___ -> - let uu___1 = - let uu___2 = get_split_queries () in parse_split_queries uu___2 in - FStar_Compiler_Util.must uu___1 + let uu___3 = + let uu___4 = get_split_queries () in parse_split_queries uu___4 in + FStar_Compiler_Util.must uu___3 let (tactic_raw_binders : unit -> Prims.bool) = fun uu___ -> get_tactic_raw_binders () let (tactics_failhard : unit -> Prims.bool) = @@ -4593,19 +4592,19 @@ let (use_native_tactics : unit -> Prims.string FStar_Pervasives_Native.option) = fun uu___ -> get_use_native_tactics () let (use_tactics : unit -> Prims.bool) = - fun uu___ -> let uu___1 = get_no_tactics () in Prims.op_Negation uu___1 + fun uu___ -> let uu___3 = get_no_tactics () in Prims.op_Negation uu___3 let (using_facts_from : unit -> (Prims.string Prims.list * Prims.bool) Prims.list) = fun uu___ -> - let uu___1 = get_using_facts_from () in - match uu___1 with + let uu___3 = get_using_facts_from () in + match uu___3 with | FStar_Pervasives_Native.None -> [([], true)] | FStar_Pervasives_Native.Some ns -> parse_settings ns let (warn_default_effects : unit -> Prims.bool) = fun uu___ -> get_warn_default_effects () let (warn_error : unit -> Prims.string) = fun uu___ -> - let uu___1 = get_warn_error () in FStar_Compiler_String.concat " " uu___1 + let uu___3 = get_warn_error () in FStar_Compiler_String.concat " " uu___3 let (z3_cliopt : unit -> Prims.string Prims.list) = fun uu___ -> get_z3cliopt () let (z3_smtopt : unit -> Prims.string Prims.list) = @@ -4630,16 +4629,16 @@ let (debug_all_modules : unit -> Prims.bool) = fun uu___ -> lookup_opt "debug_all_modules" as_bool let with_saved_options : 'a . (unit -> 'a) -> 'a = fun f -> - let uu___ = let uu___1 = trace_error () in Prims.op_Negation uu___1 in + let uu___ = let uu___3 = trace_error () in Prims.op_Negation uu___3 in if uu___ then (push (); (let r = try - (fun uu___2 -> + (fun uu___4 -> match () with - | () -> let uu___3 = f () in FStar_Pervasives.Inr uu___3) () - with | uu___2 -> FStar_Pervasives.Inl uu___2 in + | () -> let uu___5 = f () in FStar_Pervasives.Inr uu___5) () + with | uu___4 -> FStar_Pervasives.Inl uu___4 in pop (); (match r with | FStar_Pervasives.Inr v -> v @@ -4661,12 +4660,12 @@ let (module_matches_namespace_filter : | uu___ -> false in let uu___ = FStar_Compiler_Util.try_find - (fun uu___1 -> - match uu___1 with - | (path, uu___2) -> matches_path m_components path) setting in + (fun uu___3 -> + match uu___3 with + | (path, uu___4) -> matches_path m_components path) setting in match uu___ with | FStar_Pervasives_Native.None -> false - | FStar_Pervasives_Native.Some (uu___1, flag) -> flag + | FStar_Pervasives_Native.Some (uu___3, flag) -> flag let (matches_namespace_filter_opt : Prims.string -> Prims.string Prims.list FStar_Pervasives_Native.option -> Prims.bool) @@ -4695,14 +4694,14 @@ let (__proj__Mkparsed_extract_setting__item__default_settings : let (print_pes : parsed_extract_setting -> Prims.string) = fun pes -> let uu___ = - let uu___1 = + let uu___3 = FStar_Compiler_List.map - (fun uu___2 -> - match uu___2 with + (fun uu___4 -> + match uu___4 with | (tgt, s) -> FStar_Compiler_Util.format2 "(%s, %s)" (print_codegen tgt) s) pes.target_specific_settings in - FStar_Compiler_String.concat "; " uu___1 in + FStar_Compiler_String.concat "; " uu___3 in FStar_Compiler_Util.format2 "{ target_specific_settings = %s;\n\t\n default_settings = %s }" uu___ @@ -4718,11 +4717,11 @@ let (find_setting_for_target : fun s -> let uu___ = FStar_Compiler_Util.try_find - (fun uu___1 -> match uu___1 with | (x, uu___2) -> x = tgt) s in + (fun uu___3 -> match uu___3 with | (x, uu___4) -> x = tgt) s in match uu___ with - | FStar_Pervasives_Native.Some (uu___1, s1) -> + | FStar_Pervasives_Native.Some (uu___3, s1) -> FStar_Pervasives_Native.Some s1 - | uu___1 -> FStar_Pervasives_Native.None + | uu___3 -> FStar_Pervasives_Native.None let (extract_settings : unit -> parsed_extract_setting FStar_Pervasives_Native.option) = let memo = FStar_Compiler_Util.mk_ref (FStar_Pervasives_Native.None, false) in @@ -4738,37 +4737,37 @@ let (extract_settings : | (FStar_Pervasives_Native.Some p01, FStar_Pervasives_Native.Some p11) -> let uu___ = - let uu___1 = FStar_Compiler_String.op_Hat "," p11 in - FStar_Compiler_String.op_Hat p01 uu___1 in + let uu___3 = FStar_Compiler_String.op_Hat "," p11 in + FStar_Compiler_String.op_Hat p01 uu___3 in FStar_Pervasives_Native.Some uu___ in let merge_target tgt = let uu___ = - let uu___1 = find_setting_for_target tgt p0.target_specific_settings in - let uu___2 = find_setting_for_target tgt p1.target_specific_settings in - merge_setting uu___1 uu___2 in + let uu___3 = find_setting_for_target tgt p0.target_specific_settings in + let uu___4 = find_setting_for_target tgt p1.target_specific_settings in + merge_setting uu___3 uu___4 in match uu___ with | FStar_Pervasives_Native.None -> [] | FStar_Pervasives_Native.Some x -> [(tgt, x)] in let uu___ = FStar_Compiler_List.collect merge_target [OCaml; FSharp; Krml; Plugin; Extension] in - let uu___1 = merge_setting p0.default_settings p1.default_settings in - { target_specific_settings = uu___; default_settings = uu___1 } in + let uu___3 = merge_setting p0.default_settings p1.default_settings in + { target_specific_settings = uu___; default_settings = uu___3 } in fun uu___ -> - let uu___1 = FStar_Compiler_Effect.op_Bang memo in - match uu___1 with + let uu___3 = FStar_Compiler_Effect.op_Bang memo in + match uu___3 with | (result, set1) -> let fail msg = display_usage (); - (let uu___3 = + (let uu___5 = FStar_Compiler_Util.format1 "Could not parse '%s' passed to the --extract option" msg in - FStar_Compiler_Effect.failwith uu___3) in + FStar_Compiler_Effect.failwith uu___5) in if set1 then result else - (let uu___3 = get_extract () in - match uu___3 with + (let uu___5 = get_extract () in + match uu___5 with | FStar_Pervasives_Native.None -> (FStar_Compiler_Effect.op_Colon_Equals memo (FStar_Pervasives_Native.None, true); @@ -4784,23 +4783,23 @@ let (extract_settings : (FStar_Compiler_Util.trim_string default_setting) | target::setting::[] -> let target1 = FStar_Compiler_Util.trim_string target in - let uu___4 = parse_codegen target1 in - (match uu___4 with + let uu___6 = parse_codegen target1 in + (match uu___6 with | FStar_Pervasives_Native.None -> fail target1 | FStar_Pervasives_Native.Some tgt -> FStar_Pervasives.Inl (tgt, (FStar_Compiler_Util.trim_string setting)) - | uu___5 -> fail t_setting) in + | uu___7 -> fail t_setting) in let settings = FStar_Compiler_List.map split_one tgt_specific_settings in let fail_duplicate msg tgt = display_usage (); - (let uu___5 = + (let uu___7 = FStar_Compiler_Util.format2 "Could not parse '%s'; multiple setting for %s target" msg tgt in - FStar_Compiler_Effect.failwith uu___5) in + FStar_Compiler_Effect.failwith uu___7) in let pes = FStar_Compiler_List.fold_right (fun setting -> @@ -4815,16 +4814,16 @@ let (extract_settings : default_settings = (FStar_Pervasives_Native.Some def) } - | FStar_Pervasives_Native.Some uu___4 -> + | FStar_Pervasives_Native.Some uu___6 -> fail_duplicate def "default") | FStar_Pervasives.Inl (target, setting1) -> - let uu___4 = + let uu___6 = FStar_Compiler_Util.try_find - (fun uu___5 -> - match uu___5 with - | (x, uu___6) -> x = target) + (fun uu___7 -> + match uu___7 with + | (x, uu___8) -> x = target) out.target_specific_settings in - (match uu___4 with + (match uu___6 with | FStar_Pervasives_Native.None -> { target_specific_settings = @@ -4833,7 +4832,7 @@ let (extract_settings : default_settings = (out.default_settings) } - | FStar_Pervasives_Native.Some uu___5 -> + | FStar_Pervasives_Native.Some uu___7 -> fail_duplicate setting1 (print_codegen target))) settings { @@ -4850,8 +4849,8 @@ let (extract_settings : FStar_Compiler_List.fold_right (fun setting -> fun pes1 -> - let uu___4 = parse_one_setting setting in - merge_parsed_extract_settings pes1 uu___4) + let uu___6 = parse_one_setting setting in + merge_parsed_extract_settings pes1 uu___6) extract_settings1 empty_pes in (FStar_Compiler_Effect.op_Colon_Equals memo ((FStar_Pervasives_Native.Some pes), true); @@ -4863,23 +4862,23 @@ let (should_extract : Prims.string -> codegen_t -> Prims.bool) = if m1 = "prims" then false else - (let uu___1 = extract_settings () in - match uu___1 with + (let uu___3 = extract_settings () in + match uu___3 with | FStar_Pervasives_Native.Some pes -> - ((let uu___3 = - let uu___4 = get_no_extract () in - let uu___5 = get_extract_namespace () in - let uu___6 = get_extract_module () in - (uu___4, uu___5, uu___6) in - match uu___3 with + ((let uu___5 = + let uu___6 = get_no_extract () in + let uu___7 = get_extract_namespace () in + let uu___8 = get_extract_module () in + (uu___6, uu___7, uu___8) in + match uu___5 with | ([], [], []) -> () - | uu___4 -> + | uu___6 -> FStar_Compiler_Effect.failwith "Incompatible options: --extract cannot be used with --no_extract, --extract_namespace or --extract_module"); (let tsetting = - let uu___3 = + let uu___5 = find_setting_for_target tgt pes.target_specific_settings in - match uu___3 with + match uu___5 with | FStar_Pervasives_Native.Some s -> s | FStar_Pervasives_Native.None -> (match pes.default_settings with @@ -4888,8 +4887,8 @@ let (should_extract : Prims.string -> codegen_t -> Prims.bool) = module_matches_namespace_filter m1 [tsetting])) | FStar_Pervasives_Native.None -> let should_extract_namespace m2 = - let uu___2 = get_extract_namespace () in - match uu___2 with + let uu___4 = get_extract_namespace () in + match uu___4 with | [] -> false | ns -> FStar_Compiler_Util.for_some @@ -4897,19 +4896,19 @@ let (should_extract : Prims.string -> codegen_t -> Prims.bool) = FStar_Compiler_Util.starts_with m2 (FStar_Compiler_String.lowercase n)) ns in let should_extract_module m2 = - let uu___2 = get_extract_module () in - match uu___2 with + let uu___4 = get_extract_module () in + match uu___4 with | [] -> false | l -> FStar_Compiler_Util.for_some (fun n -> (FStar_Compiler_String.lowercase n) = m2) l in - (let uu___2 = no_extract m1 in Prims.op_Negation uu___2) && - (let uu___2 = - let uu___3 = get_extract_namespace () in - let uu___4 = get_extract_module () in (uu___3, uu___4) in - (match uu___2 with + (let uu___4 = no_extract m1 in Prims.op_Negation uu___4) && + (let uu___4 = + let uu___5 = get_extract_namespace () in + let uu___6 = get_extract_module () in (uu___5, uu___6) in + (match uu___4 with | ([], []) -> true - | uu___3 -> + | uu___5 -> (should_extract_namespace m1) || (should_extract_module m1)))) let (should_be_already_cached : Prims.string -> Prims.bool) = @@ -4965,74 +4964,74 @@ let (set_options : Prims.string -> FStar_Getopt.parse_cmdline_res) = else res)) () with | File_argument s1 -> - let uu___1 = + let uu___3 = FStar_Compiler_Util.format1 "File %s is not a valid option" s1 in - FStar_Getopt.Error uu___1 + FStar_Getopt.Error uu___3 let with_options : 'a . Prims.string -> (unit -> 'a) -> 'a = fun s -> fun f -> with_saved_options - (fun uu___ -> (let uu___2 = set_options s in ()); f ()) + (fun uu___ -> (let uu___4 = set_options s in ()); f ()) let (get_vconfig : unit -> FStar_VConfig.vconfig) = fun uu___ -> let vcfg = - let uu___1 = get_initial_fuel () in - let uu___2 = get_max_fuel () in - let uu___3 = get_initial_ifuel () in - let uu___4 = get_max_ifuel () in - let uu___5 = get_detail_errors () in - let uu___6 = get_detail_hint_replay () in - let uu___7 = get_no_smt () in - let uu___8 = get_quake_lo () in - let uu___9 = get_quake_hi () in - let uu___10 = get_quake_keep () in - let uu___11 = get_retry () in - let uu___12 = get_smtencoding_elim_box () in - let uu___13 = get_smtencoding_nl_arith_repr () in - let uu___14 = get_smtencoding_l_arith_repr () in - let uu___15 = get_smtencoding_valid_intro () in - let uu___16 = get_smtencoding_valid_elim () in - let uu___17 = get_tcnorm () in - let uu___18 = get_no_plugins () in - let uu___19 = get_no_tactics () in - let uu___20 = get_z3cliopt () in - let uu___21 = get_z3smtopt () in - let uu___22 = get_z3refresh () in - let uu___23 = get_z3rlimit () in - let uu___24 = get_z3rlimit_factor () in - let uu___25 = get_z3seed () in - let uu___26 = get_z3version () in - let uu___27 = get_trivial_pre_for_unannotated_effectful_fns () in - let uu___28 = get_reuse_hint_for () in + let uu___3 = get_initial_fuel () in + let uu___4 = get_max_fuel () in + let uu___5 = get_initial_ifuel () in + let uu___6 = get_max_ifuel () in + let uu___7 = get_detail_errors () in + let uu___8 = get_detail_hint_replay () in + let uu___9 = get_no_smt () in + let uu___10 = get_quake_lo () in + let uu___11 = get_quake_hi () in + let uu___12 = get_quake_keep () in + let uu___13 = get_retry () in + let uu___14 = get_smtencoding_elim_box () in + let uu___15 = get_smtencoding_nl_arith_repr () in + let uu___16 = get_smtencoding_l_arith_repr () in + let uu___17 = get_smtencoding_valid_intro () in + let uu___18 = get_smtencoding_valid_elim () in + let uu___19 = get_tcnorm () in + let uu___20 = get_no_plugins () in + let uu___21 = get_no_tactics () in + let uu___22 = get_z3cliopt () in + let uu___23 = get_z3smtopt () in + let uu___24 = get_z3refresh () in + let uu___25 = get_z3rlimit () in + let uu___26 = get_z3rlimit_factor () in + let uu___27 = get_z3seed () in + let uu___28 = get_z3version () in + let uu___29 = get_trivial_pre_for_unannotated_effectful_fns () in + let uu___30 = get_reuse_hint_for () in { - FStar_VConfig.initial_fuel = uu___1; - FStar_VConfig.max_fuel = uu___2; - FStar_VConfig.initial_ifuel = uu___3; - FStar_VConfig.max_ifuel = uu___4; - FStar_VConfig.detail_errors = uu___5; - FStar_VConfig.detail_hint_replay = uu___6; - FStar_VConfig.no_smt = uu___7; - FStar_VConfig.quake_lo = uu___8; - FStar_VConfig.quake_hi = uu___9; - FStar_VConfig.quake_keep = uu___10; - FStar_VConfig.retry = uu___11; - FStar_VConfig.smtencoding_elim_box = uu___12; - FStar_VConfig.smtencoding_nl_arith_repr = uu___13; - FStar_VConfig.smtencoding_l_arith_repr = uu___14; - FStar_VConfig.smtencoding_valid_intro = uu___15; - FStar_VConfig.smtencoding_valid_elim = uu___16; - FStar_VConfig.tcnorm = uu___17; - FStar_VConfig.no_plugins = uu___18; - FStar_VConfig.no_tactics = uu___19; - FStar_VConfig.z3cliopt = uu___20; - FStar_VConfig.z3smtopt = uu___21; - FStar_VConfig.z3refresh = uu___22; - FStar_VConfig.z3rlimit = uu___23; - FStar_VConfig.z3rlimit_factor = uu___24; - FStar_VConfig.z3seed = uu___25; - FStar_VConfig.z3version = uu___26; - FStar_VConfig.trivial_pre_for_unannotated_effectful_fns = uu___27; - FStar_VConfig.reuse_hint_for = uu___28 + FStar_VConfig.initial_fuel = uu___3; + FStar_VConfig.max_fuel = uu___4; + FStar_VConfig.initial_ifuel = uu___5; + FStar_VConfig.max_ifuel = uu___6; + FStar_VConfig.detail_errors = uu___7; + FStar_VConfig.detail_hint_replay = uu___8; + FStar_VConfig.no_smt = uu___9; + FStar_VConfig.quake_lo = uu___10; + FStar_VConfig.quake_hi = uu___11; + FStar_VConfig.quake_keep = uu___12; + FStar_VConfig.retry = uu___13; + FStar_VConfig.smtencoding_elim_box = uu___14; + FStar_VConfig.smtencoding_nl_arith_repr = uu___15; + FStar_VConfig.smtencoding_l_arith_repr = uu___16; + FStar_VConfig.smtencoding_valid_intro = uu___17; + FStar_VConfig.smtencoding_valid_elim = uu___18; + FStar_VConfig.tcnorm = uu___19; + FStar_VConfig.no_plugins = uu___20; + FStar_VConfig.no_tactics = uu___21; + FStar_VConfig.z3cliopt = uu___22; + FStar_VConfig.z3smtopt = uu___23; + FStar_VConfig.z3refresh = uu___24; + FStar_VConfig.z3rlimit = uu___25; + FStar_VConfig.z3rlimit_factor = uu___26; + FStar_VConfig.z3seed = uu___27; + FStar_VConfig.z3version = uu___28; + FStar_VConfig.trivial_pre_for_unannotated_effectful_fns = uu___29; + FStar_VConfig.reuse_hint_for = uu___30 } in vcfg let (set_vconfig : FStar_VConfig.vconfig -> unit) = @@ -5066,18 +5065,18 @@ let (set_vconfig : FStar_VConfig.vconfig -> unit) = set_option "tcnorm" (Bool (vcfg.FStar_VConfig.tcnorm)); set_option "no_plugins" (Bool (vcfg.FStar_VConfig.no_plugins)); set_option "no_tactics" (Bool (vcfg.FStar_VConfig.no_tactics)); - (let uu___20 = - let uu___21 = - FStar_Compiler_List.map (fun uu___22 -> String uu___22) + (let uu___22 = + let uu___23 = + FStar_Compiler_List.map (fun uu___24 -> String uu___24) vcfg.FStar_VConfig.z3cliopt in - List uu___21 in - set_option "z3cliopt" uu___20); - (let uu___21 = - let uu___22 = - FStar_Compiler_List.map (fun uu___23 -> String uu___23) + List uu___23 in + set_option "z3cliopt" uu___22); + (let uu___23 = + let uu___24 = + FStar_Compiler_List.map (fun uu___25 -> String uu___25) vcfg.FStar_VConfig.z3smtopt in - List uu___22 in - set_option "z3smtopt" uu___21); + List uu___24 in + set_option "z3smtopt" uu___23); set_option "z3refresh" (Bool (vcfg.FStar_VConfig.z3refresh)); set_option "z3rlimit" (Int (vcfg.FStar_VConfig.z3rlimit)); set_option "z3rlimit_factor" (Int (vcfg.FStar_VConfig.z3rlimit_factor)); @@ -5085,7 +5084,7 @@ let (set_vconfig : FStar_VConfig.vconfig -> unit) = set_option "z3version" (String (vcfg.FStar_VConfig.z3version)); set_option "trivial_pre_for_unannotated_effectful_fns" (Bool (vcfg.FStar_VConfig.trivial_pre_for_unannotated_effectful_fns)); - (let uu___28 = - option_as (fun uu___29 -> String uu___29) + (let uu___30 = + option_as (fun uu___31 -> String uu___31) vcfg.FStar_VConfig.reuse_hint_for in - set_option "reuse_hint_for" uu___28) \ No newline at end of file + set_option "reuse_hint_for" uu___30) \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_Reflection_V1_Constants.ml b/ocaml/fstar-lib/generated/FStar_Reflection_V1_Constants.ml index 2600a3c88c6..63932510c1c 100644 --- a/ocaml/fstar-lib/generated/FStar_Reflection_V1_Constants.ml +++ b/ocaml/fstar-lib/generated/FStar_Reflection_V1_Constants.ml @@ -62,72 +62,71 @@ let (mk_inspect_pack_pair : Prims.string -> (refl_constant * refl_constant)) let uu___ = FStar_Syntax_Syntax.fv_to_tm pack_fv in { lid = pack_lid; fv = pack_fv; t = uu___ } in (inspect, pack) -let (uu___31 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_ln" +let (uu___0 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_ln" let (fstar_refl_inspect_ln : refl_constant) = - match uu___31 with + match uu___0 with | (fstar_refl_inspect_ln1, fstar_refl_pack_ln) -> fstar_refl_inspect_ln1 let (fstar_refl_pack_ln : refl_constant) = - match uu___31 with + match uu___0 with | (fstar_refl_inspect_ln1, fstar_refl_pack_ln1) -> fstar_refl_pack_ln1 -let (uu___38 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_fv" +let (uu___1 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_fv" let (fstar_refl_inspect_fv : refl_constant) = - match uu___38 with + match uu___1 with | (fstar_refl_inspect_fv1, fstar_refl_pack_fv) -> fstar_refl_inspect_fv1 let (fstar_refl_pack_fv : refl_constant) = - match uu___38 with + match uu___1 with | (fstar_refl_inspect_fv1, fstar_refl_pack_fv1) -> fstar_refl_pack_fv1 -let (uu___45 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_bv" +let (uu___2 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_bv" let (fstar_refl_inspect_bv : refl_constant) = - match uu___45 with + match uu___2 with | (fstar_refl_inspect_bv1, fstar_refl_pack_bv) -> fstar_refl_inspect_bv1 let (fstar_refl_pack_bv : refl_constant) = - match uu___45 with + match uu___2 with | (fstar_refl_inspect_bv1, fstar_refl_pack_bv1) -> fstar_refl_pack_bv1 -let (uu___52 : (refl_constant * refl_constant)) = +let (uu___3 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_binder" let (fstar_refl_inspect_binder : refl_constant) = - match uu___52 with + match uu___3 with | (fstar_refl_inspect_binder1, fstar_refl_pack_binder) -> fstar_refl_inspect_binder1 let (fstar_refl_pack_binder : refl_constant) = - match uu___52 with + match uu___3 with | (fstar_refl_inspect_binder1, fstar_refl_pack_binder1) -> fstar_refl_pack_binder1 -let (uu___59 : (refl_constant * refl_constant)) = - mk_inspect_pack_pair "_comp" +let (uu___4 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_comp" let (fstar_refl_inspect_comp : refl_constant) = - match uu___59 with + match uu___4 with | (fstar_refl_inspect_comp1, fstar_refl_pack_comp) -> fstar_refl_inspect_comp1 let (fstar_refl_pack_comp : refl_constant) = - match uu___59 with + match uu___4 with | (fstar_refl_inspect_comp1, fstar_refl_pack_comp1) -> fstar_refl_pack_comp1 -let (uu___66 : (refl_constant * refl_constant)) = +let (uu___5 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_sigelt" let (fstar_refl_inspect_sigelt : refl_constant) = - match uu___66 with + match uu___5 with | (fstar_refl_inspect_sigelt1, fstar_refl_pack_sigelt) -> fstar_refl_inspect_sigelt1 let (fstar_refl_pack_sigelt : refl_constant) = - match uu___66 with + match uu___5 with | (fstar_refl_inspect_sigelt1, fstar_refl_pack_sigelt1) -> fstar_refl_pack_sigelt1 -let (uu___73 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_lb" +let (uu___6 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_lb" let (fstar_refl_inspect_lb : refl_constant) = - match uu___73 with + match uu___6 with | (fstar_refl_inspect_lb1, fstar_refl_pack_lb) -> fstar_refl_inspect_lb1 let (fstar_refl_pack_lb : refl_constant) = - match uu___73 with + match uu___6 with | (fstar_refl_inspect_lb1, fstar_refl_pack_lb1) -> fstar_refl_pack_lb1 -let (uu___80 : (refl_constant * refl_constant)) = +let (uu___7 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_universe" let (fstar_refl_inspect_universe : refl_constant) = - match uu___80 with + match uu___7 with | (fstar_refl_inspect_universe1, fstar_refl_pack_universe) -> fstar_refl_inspect_universe1 let (fstar_refl_pack_universe : refl_constant) = - match uu___80 with + match uu___7 with | (fstar_refl_inspect_universe1, fstar_refl_pack_universe1) -> fstar_refl_pack_universe1 let (fstar_refl_env : FStar_Syntax_Syntax.term) = @@ -230,18 +229,18 @@ let (ref_Mk_bv : refl_constant) = let lid = fstar_refl_data_lid "Mkbv_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "bv_view" in - let uu___2 = - let uu___3 = + let uu___8 = fstar_refl_data_lid "bv_view" in + let uu___9 = + let uu___10 = FStar_Ident.mk_ident ("bv_ppname", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___11 = + let uu___12 = FStar_Ident.mk_ident ("bv_index", FStar_Compiler_Range_Type.dummyRange) in - [uu___5] in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___12] in + uu___10 :: uu___11 in + (uu___8, uu___9) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -250,28 +249,28 @@ let (ref_Mk_binder : refl_constant) = let lid = fstar_refl_data_lid "Mkbinder_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "binder_view" in - let uu___2 = - let uu___3 = + let uu___8 = fstar_refl_data_lid "binder_view" in + let uu___9 = + let uu___10 = FStar_Ident.mk_ident ("binder_bv", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___11 = + let uu___12 = FStar_Ident.mk_ident ("binder_qual", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___13 = + let uu___14 = FStar_Ident.mk_ident ("binder_attrs", FStar_Compiler_Range_Type.dummyRange) in - let uu___8 = - let uu___9 = + let uu___15 = + let uu___16 = FStar_Ident.mk_ident ("binder_sort", FStar_Compiler_Range_Type.dummyRange) in - [uu___9] in - uu___7 :: uu___8 in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___16] in + uu___14 :: uu___15 in + uu___12 :: uu___13 in + uu___10 :: uu___11 in + (uu___8, uu___9) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -280,28 +279,28 @@ let (ref_Mk_lb : refl_constant) = let lid = fstar_refl_data_lid "Mklb_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "lb_view" in - let uu___2 = - let uu___3 = + let uu___8 = fstar_refl_data_lid "lb_view" in + let uu___9 = + let uu___10 = FStar_Ident.mk_ident ("lb_fv", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___11 = + let uu___12 = FStar_Ident.mk_ident ("lb_us", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___13 = + let uu___14 = FStar_Ident.mk_ident ("lb_typ", FStar_Compiler_Range_Type.dummyRange) in - let uu___8 = - let uu___9 = + let uu___15 = + let uu___16 = FStar_Ident.mk_ident ("lb_def", FStar_Compiler_Range_Type.dummyRange) in - [uu___9] in - uu___7 :: uu___8 in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___16] in + uu___14 :: uu___15 in + uu___12 :: uu___13 in + uu___10 :: uu___11 in + (uu___8, uu___9) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in diff --git a/ocaml/fstar-lib/generated/FStar_Reflection_V1_Interpreter.ml b/ocaml/fstar-lib/generated/FStar_Reflection_V1_Interpreter.ml index 0457a38d3a6..e316e4ad795 100644 --- a/ocaml/fstar-lib/generated/FStar_Reflection_V1_Interpreter.ml +++ b/ocaml/fstar-lib/generated/FStar_Reflection_V1_Interpreter.ml @@ -94,341 +94,341 @@ let mk3 : fun z -> let uu___8 = f x y z in FStar_Pervasives_Native.Some uu___8) -let (uu___60 : +let (uu___0 : FStar_Syntax_Syntax.term FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_term -let (uu___61 : +let (uu___1 : FStar_Reflection_V1_Data.term_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_term_view -let (uu___62 : FStar_Syntax_Syntax.fv FStar_Syntax_Embeddings_Base.embedding) +let (uu___2 : FStar_Syntax_Syntax.fv FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_fv -let (uu___63 : FStar_Syntax_Syntax.bv FStar_Syntax_Embeddings_Base.embedding) +let (uu___3 : FStar_Syntax_Syntax.bv FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_bv -let (uu___64 : +let (uu___4 : FStar_Reflection_V1_Data.bv_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_bv_view -let (uu___65 : +let (uu___5 : FStar_Syntax_Syntax.comp FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_comp -let (uu___66 : +let (uu___6 : FStar_Reflection_V1_Data.comp_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_comp_view -let (uu___67 : +let (uu___7 : FStar_Syntax_Syntax.universe FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_universe -let (uu___68 : +let (uu___8 : FStar_Reflection_V1_Data.universe_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_universe_view -let (uu___69 : +let (uu___9 : FStar_Syntax_Syntax.sigelt FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_sigelt -let (uu___70 : +let (uu___10 : FStar_Reflection_V1_Data.sigelt_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_sigelt_view -let (uu___71 : +let (uu___11 : FStar_Syntax_Syntax.binder FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_binder -let (uu___72 : +let (uu___12 : FStar_Reflection_V1_Data.binder_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_binder_view -let (uu___73 : +let (uu___13 : FStar_Reflection_V1_Data.binders FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_binders -let (uu___74 : +let (uu___14 : FStar_Syntax_Syntax.letbinding FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_letbinding -let (uu___75 : +let (uu___15 : FStar_Reflection_V1_Data.lb_view FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_lb_view -let (uu___76 : +let (uu___16 : FStar_TypeChecker_Env.env FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_env -let (uu___77 : +let (uu___17 : FStar_Reflection_V1_Data.aqualv FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_aqualv -let (uu___78 : +let (uu___18 : FStar_Syntax_Syntax.attribute Prims.list FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_attributes -let (uu___79 : +let (uu___19 : FStar_Reflection_V1_Data.qualifier Prims.list FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_qualifiers -let (uu___80 : FStar_Syntax_Syntax.term FStar_TypeChecker_NBETerm.embedding) +let (uu___20 : FStar_Syntax_Syntax.term FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_term -let (uu___81 : +let (uu___21 : FStar_Reflection_V1_Data.term_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_term_view -let (uu___82 : FStar_Syntax_Syntax.fv FStar_TypeChecker_NBETerm.embedding) = +let (uu___22 : FStar_Syntax_Syntax.fv FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_fv -let (uu___83 : FStar_Syntax_Syntax.bv FStar_TypeChecker_NBETerm.embedding) = +let (uu___23 : FStar_Syntax_Syntax.bv FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_bv -let (uu___84 : +let (uu___24 : FStar_Reflection_V1_Data.bv_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_bv_view -let (uu___85 : FStar_Syntax_Syntax.comp FStar_TypeChecker_NBETerm.embedding) +let (uu___25 : FStar_Syntax_Syntax.comp FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_comp -let (uu___86 : +let (uu___26 : FStar_Reflection_V1_Data.comp_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_comp_view -let (uu___87 : +let (uu___27 : FStar_Syntax_Syntax.universe FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_universe -let (uu___88 : +let (uu___28 : FStar_Reflection_V1_Data.universe_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_universe_view -let (uu___89 : +let (uu___29 : FStar_Syntax_Syntax.sigelt FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_sigelt -let (uu___90 : +let (uu___30 : FStar_Reflection_V1_Data.sigelt_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_sigelt_view -let (uu___91 : +let (uu___31 : FStar_Syntax_Syntax.binder FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_binder -let (uu___92 : +let (uu___32 : FStar_Reflection_V1_Data.binder_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_binder_view -let (uu___93 : +let (uu___33 : FStar_Reflection_V1_Data.binders FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_binders -let (uu___94 : +let (uu___34 : FStar_Syntax_Syntax.letbinding FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_letbinding -let (uu___95 : +let (uu___35 : FStar_Reflection_V1_Data.lb_view FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_lb_view -let (uu___96 : FStar_TypeChecker_Env.env FStar_TypeChecker_NBETerm.embedding) +let (uu___36 : FStar_TypeChecker_Env.env FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_env -let (uu___97 : +let (uu___37 : FStar_Reflection_V1_Data.aqualv FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_aqualv -let (uu___98 : +let (uu___38 : FStar_Syntax_Syntax.attribute Prims.list FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_attributes -let (uu___99 : +let (uu___39 : FStar_Reflection_V1_Data.qualifier Prims.list FStar_TypeChecker_NBETerm.embedding) = FStar_Reflection_V1_NBEEmbeddings.e_qualifiers let (reflection_primops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = let uu___ = - mk1 "inspect_ln" uu___60 uu___61 uu___80 uu___81 + mk1 "inspect_ln" uu___0 uu___1 uu___20 uu___21 FStar_Reflection_V1_Builtins.inspect_ln in - let uu___1 = - let uu___2 = - mk1 "pack_ln" uu___61 uu___60 uu___81 uu___80 + let uu___40 = + let uu___41 = + mk1 "pack_ln" uu___1 uu___0 uu___21 uu___20 FStar_Reflection_V1_Builtins.pack_ln in - let uu___3 = - let uu___4 = - mk1 "inspect_fv" uu___62 FStar_Syntax_Embeddings.e_string_list - uu___82 FStar_TypeChecker_NBETerm.e_string_list + let uu___42 = + let uu___43 = + mk1 "inspect_fv" uu___2 FStar_Syntax_Embeddings.e_string_list uu___22 + FStar_TypeChecker_NBETerm.e_string_list FStar_Reflection_V1_Builtins.inspect_fv in - let uu___5 = - let uu___6 = - mk1 "pack_fv" FStar_Syntax_Embeddings.e_string_list uu___62 - FStar_TypeChecker_NBETerm.e_string_list uu___82 + let uu___44 = + let uu___45 = + mk1 "pack_fv" FStar_Syntax_Embeddings.e_string_list uu___2 + FStar_TypeChecker_NBETerm.e_string_list uu___22 FStar_Reflection_V1_Builtins.pack_fv in - let uu___7 = - let uu___8 = - mk1 "inspect_comp" uu___65 uu___66 uu___85 uu___86 + let uu___46 = + let uu___47 = + mk1 "inspect_comp" uu___5 uu___6 uu___25 uu___26 FStar_Reflection_V1_Builtins.inspect_comp in - let uu___9 = - let uu___10 = - mk1 "pack_comp" uu___66 uu___65 uu___86 uu___85 + let uu___48 = + let uu___49 = + mk1 "pack_comp" uu___6 uu___5 uu___26 uu___25 FStar_Reflection_V1_Builtins.pack_comp in - let uu___11 = - let uu___12 = - mk1 "inspect_universe" uu___67 uu___68 uu___87 uu___88 + let uu___50 = + let uu___51 = + mk1 "inspect_universe" uu___7 uu___8 uu___27 uu___28 FStar_Reflection_V1_Builtins.inspect_universe in - let uu___13 = - let uu___14 = - mk1 "pack_universe" uu___68 uu___67 uu___88 uu___87 + let uu___52 = + let uu___53 = + mk1 "pack_universe" uu___8 uu___7 uu___28 uu___27 FStar_Reflection_V1_Builtins.pack_universe in - let uu___15 = - let uu___16 = - mk1 "inspect_sigelt" uu___69 uu___70 uu___89 uu___90 + let uu___54 = + let uu___55 = + mk1 "inspect_sigelt" uu___9 uu___10 uu___29 uu___30 FStar_Reflection_V1_Builtins.inspect_sigelt in - let uu___17 = - let uu___18 = - mk1 "pack_sigelt" uu___70 uu___69 uu___90 uu___89 + let uu___56 = + let uu___57 = + mk1 "pack_sigelt" uu___10 uu___9 uu___30 uu___29 FStar_Reflection_V1_Builtins.pack_sigelt in - let uu___19 = - let uu___20 = - mk1 "inspect_lb" uu___74 uu___75 uu___94 uu___95 + let uu___58 = + let uu___59 = + mk1 "inspect_lb" uu___14 uu___15 uu___34 uu___35 FStar_Reflection_V1_Builtins.inspect_lb in - let uu___21 = - let uu___22 = - mk1 "pack_lb" uu___75 uu___74 uu___95 uu___94 + let uu___60 = + let uu___61 = + mk1 "pack_lb" uu___15 uu___14 uu___35 uu___34 FStar_Reflection_V1_Builtins.pack_lb in - let uu___23 = - let uu___24 = - mk1 "inspect_bv" uu___63 uu___64 uu___83 uu___84 + let uu___62 = + let uu___63 = + mk1 "inspect_bv" uu___3 uu___4 uu___23 uu___24 FStar_Reflection_V1_Builtins.inspect_bv in - let uu___25 = - let uu___26 = - mk1 "pack_bv" uu___64 uu___63 uu___84 uu___83 + let uu___64 = + let uu___65 = + mk1 "pack_bv" uu___4 uu___3 uu___24 uu___23 FStar_Reflection_V1_Builtins.pack_bv in - let uu___27 = - let uu___28 = - mk1 "inspect_binder" uu___71 uu___72 uu___91 - uu___92 + let uu___66 = + let uu___67 = + mk1 "inspect_binder" uu___11 uu___12 uu___31 + uu___32 FStar_Reflection_V1_Builtins.inspect_binder in - let uu___29 = - let uu___30 = - mk1 "pack_binder" uu___72 uu___71 uu___92 - uu___91 + let uu___68 = + let uu___69 = + mk1 "pack_binder" uu___12 uu___11 uu___32 + uu___31 FStar_Reflection_V1_Builtins.pack_binder in - let uu___31 = - let uu___32 = - mk1 "sigelt_opts" uu___69 + let uu___70 = + let uu___71 = + mk1 "sigelt_opts" uu___9 (FStar_Syntax_Embeddings.e_option FStar_Syntax_Embeddings.e_vconfig) - uu___89 + uu___29 (FStar_TypeChecker_NBETerm.e_option FStar_TypeChecker_NBETerm.e_vconfig) FStar_Reflection_V1_Builtins.sigelt_opts in - let uu___33 = - let uu___34 = + let uu___72 = + let uu___73 = mk1 "embed_vconfig" FStar_Syntax_Embeddings.e_vconfig - uu___60 + uu___0 FStar_TypeChecker_NBETerm.e_vconfig - uu___80 + uu___20 FStar_Reflection_V1_Builtins.embed_vconfig in - let uu___35 = - let uu___36 = - mk1 "sigelt_attrs" uu___69 uu___78 - uu___89 uu___98 + let uu___74 = + let uu___75 = + mk1 "sigelt_attrs" uu___9 uu___18 + uu___29 uu___38 FStar_Reflection_V1_Builtins.sigelt_attrs in - let uu___37 = - let uu___38 = - mk2 "set_sigelt_attrs" uu___78 - uu___69 uu___69 uu___98 uu___89 - uu___89 + let uu___76 = + let uu___77 = + mk2 "set_sigelt_attrs" uu___18 + uu___9 uu___9 uu___38 uu___29 + uu___29 FStar_Reflection_V1_Builtins.set_sigelt_attrs in - let uu___39 = - let uu___40 = - mk1 "sigelt_quals" uu___69 - uu___79 uu___89 uu___99 + let uu___78 = + let uu___79 = + mk1 "sigelt_quals" uu___9 uu___19 + uu___29 uu___39 FStar_Reflection_V1_Builtins.sigelt_quals in - let uu___41 = - let uu___42 = - mk2 "set_sigelt_quals" uu___79 - uu___69 uu___69 uu___99 - uu___89 uu___89 + let uu___80 = + let uu___81 = + mk2 "set_sigelt_quals" uu___19 + uu___9 uu___9 uu___39 uu___29 + uu___29 FStar_Reflection_V1_Builtins.set_sigelt_quals in - let uu___43 = - let uu___44 = - mk3 "subst" uu___63 uu___60 - uu___60 uu___60 uu___83 - uu___80 uu___80 uu___80 + let uu___82 = + let uu___83 = + mk3 "subst" uu___3 uu___0 + uu___0 uu___0 uu___23 + uu___20 uu___20 uu___20 FStar_Reflection_V1_Builtins.subst in - let uu___45 = - let uu___46 = - mk2 "close_term" uu___71 - uu___60 uu___60 uu___91 - uu___80 uu___80 + let uu___84 = + let uu___85 = + mk2 "close_term" uu___11 + uu___0 uu___0 uu___31 + uu___20 uu___20 FStar_Reflection_V1_Builtins.close_term in - let uu___47 = - let uu___48 = - mk2 "compare_bv" uu___63 - uu___63 + let uu___86 = + let uu___87 = + mk2 "compare_bv" uu___3 + uu___3 FStar_Syntax_Embeddings.e_order - uu___83 uu___83 + uu___23 uu___23 FStar_TypeChecker_NBETerm.e_order FStar_Reflection_V1_Builtins.compare_bv in - let uu___49 = - let uu___50 = + let uu___88 = + let uu___89 = mk2 "lookup_attr" - uu___60 uu___76 + uu___0 uu___16 (FStar_Syntax_Embeddings.e_list - uu___62) uu___80 - uu___96 + uu___2) uu___20 + uu___36 (FStar_TypeChecker_NBETerm.e_list - uu___82) + uu___22) FStar_Reflection_V1_Builtins.lookup_attr in - let uu___51 = - let uu___52 = + let uu___90 = + let uu___91 = mk1 "all_defs_in_env" - uu___76 + uu___16 (FStar_Syntax_Embeddings.e_list - uu___62) uu___96 + uu___2) uu___36 (FStar_TypeChecker_NBETerm.e_list - uu___82) + uu___22) FStar_Reflection_V1_Builtins.all_defs_in_env in - let uu___53 = - let uu___54 = + let uu___92 = + let uu___93 = mk2 "defs_in_module" - uu___76 + uu___16 FStar_Syntax_Embeddings.e_string_list (FStar_Syntax_Embeddings.e_list - uu___62) - uu___96 + uu___2) + uu___36 FStar_TypeChecker_NBETerm.e_string_list (FStar_TypeChecker_NBETerm.e_list - uu___82) + uu___22) FStar_Reflection_V1_Builtins.defs_in_module in - let uu___55 = - let uu___56 = + let uu___94 = + let uu___95 = mk2 "term_eq" - uu___60 uu___60 + uu___0 uu___0 FStar_Syntax_Embeddings.e_bool - uu___80 uu___80 + uu___20 uu___20 FStar_TypeChecker_NBETerm.e_bool FStar_Reflection_V1_Builtins.term_eq in - let uu___57 = - let uu___58 = + let uu___96 = + let uu___97 = mk1 "moduleof" - uu___76 + uu___16 FStar_Syntax_Embeddings.e_string_list - uu___96 + uu___36 FStar_TypeChecker_NBETerm.e_string_list FStar_Reflection_V1_Builtins.moduleof in - let uu___59 = - let uu___100 = + let uu___98 = + let uu___99 = mk1 "binders_of_env" - uu___76 - uu___73 - uu___96 - uu___93 + uu___16 + uu___13 + uu___36 + uu___33 FStar_Reflection_V1_Builtins.binders_of_env in - let uu___101 = - let uu___102 + let uu___100 = + let uu___101 = mk2 "lookup_typ" - uu___76 + uu___16 FStar_Syntax_Embeddings.e_string_list ( FStar_Syntax_Embeddings.e_option - uu___69) - uu___96 + uu___9) + uu___36 FStar_TypeChecker_NBETerm.e_string_list ( FStar_TypeChecker_NBETerm.e_option - uu___89) + uu___29) FStar_Reflection_V1_Builtins.lookup_typ in - let uu___103 + let uu___102 = - let uu___104 + let uu___103 = mk1 "env_open_modules" - uu___76 + uu___16 (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_string_list) - uu___96 + uu___36 (FStar_TypeChecker_NBETerm.e_list FStar_TypeChecker_NBETerm.e_string_list) FStar_Reflection_V1_Builtins.env_open_modules in - let uu___105 + let uu___104 = - let uu___106 + let uu___105 = mk1 "implode_qn" @@ -437,9 +437,9 @@ let (reflection_primops : FStar_TypeChecker_NBETerm.e_string_list FStar_TypeChecker_NBETerm.e_string FStar_Reflection_V1_Builtins.implode_qn in - let uu___107 + let uu___106 = - let uu___108 + let uu___107 = mk1 "explode_qn" @@ -448,9 +448,9 @@ let (reflection_primops : FStar_TypeChecker_NBETerm.e_string FStar_TypeChecker_NBETerm.e_string_list FStar_Reflection_V1_Builtins.explode_qn in - let uu___109 + let uu___108 = - let uu___110 + let uu___109 = mk2 "compare_string" @@ -461,94 +461,94 @@ let (reflection_primops : FStar_TypeChecker_NBETerm.e_string FStar_TypeChecker_NBETerm.e_int FStar_Reflection_V1_Builtins.compare_string in - let uu___111 + let uu___110 = - let uu___112 + let uu___111 = mk2 "push_binder" - uu___76 - uu___71 - uu___76 - uu___96 - uu___91 - uu___96 + uu___16 + uu___11 + uu___16 + uu___36 + uu___31 + uu___36 FStar_Reflection_V1_Builtins.push_binder in - let uu___113 + let uu___112 = - let uu___114 + let uu___113 = mk1 "range_of_term" - uu___60 + uu___0 FStar_Syntax_Embeddings.e_range - uu___80 + uu___20 FStar_TypeChecker_NBETerm.e_range FStar_Reflection_V1_Builtins.range_of_term in - let uu___115 + let uu___114 = - let uu___116 + let uu___115 = mk1 "range_of_sigelt" - uu___69 + uu___9 FStar_Syntax_Embeddings.e_range - uu___89 + uu___29 FStar_TypeChecker_NBETerm.e_range FStar_Reflection_V1_Builtins.range_of_sigelt in - [uu___116] in - uu___114 + [uu___115] in + uu___113 :: - uu___115 in - uu___112 + uu___114 in + uu___111 :: - uu___113 in - uu___110 + uu___112 in + uu___109 :: - uu___111 in - uu___108 + uu___110 in + uu___107 :: - uu___109 in - uu___106 + uu___108 in + uu___105 :: - uu___107 in - uu___104 :: - uu___105 in - uu___102 :: - uu___103 in - uu___100 :: - uu___101 in - uu___58 :: - uu___59 in - uu___56 :: uu___57 in - uu___54 :: uu___55 in - uu___52 :: uu___53 in - uu___50 :: uu___51 in - uu___48 :: uu___49 in - uu___46 :: uu___47 in - uu___44 :: uu___45 in - uu___42 :: uu___43 in - uu___40 :: uu___41 in - uu___38 :: uu___39 in - uu___36 :: uu___37 in - uu___34 :: uu___35 in - uu___32 :: uu___33 in - uu___30 :: uu___31 in - uu___28 :: uu___29 in - uu___26 :: uu___27 in - uu___24 :: uu___25 in - uu___22 :: uu___23 in - uu___20 :: uu___21 in - uu___18 :: uu___19 in - uu___16 :: uu___17 in - uu___14 :: uu___15 in - uu___12 :: uu___13 in - uu___10 :: uu___11 in - uu___8 :: uu___9 in - uu___6 :: uu___7 in - uu___4 :: uu___5 in - uu___2 :: uu___3 in - uu___ :: uu___1 -let (uu___100 : unit) = + uu___106 in + uu___103 :: + uu___104 in + uu___101 :: + uu___102 in + uu___99 :: + uu___100 in + uu___97 :: + uu___98 in + uu___95 :: uu___96 in + uu___93 :: uu___94 in + uu___91 :: uu___92 in + uu___89 :: uu___90 in + uu___87 :: uu___88 in + uu___85 :: uu___86 in + uu___83 :: uu___84 in + uu___81 :: uu___82 in + uu___79 :: uu___80 in + uu___77 :: uu___78 in + uu___75 :: uu___76 in + uu___73 :: uu___74 in + uu___71 :: uu___72 in + uu___69 :: uu___70 in + uu___67 :: uu___68 in + uu___65 :: uu___66 in + uu___63 :: uu___64 in + uu___61 :: uu___62 in + uu___59 :: uu___60 in + uu___57 :: uu___58 in + uu___55 :: uu___56 in + uu___53 :: uu___54 in + uu___51 :: uu___52 in + uu___49 :: uu___50 in + uu___47 :: uu___48 in + uu___45 :: uu___46 in + uu___43 :: uu___44 in + uu___41 :: uu___42 in + uu___ :: uu___40 +let (uu___40 : unit) = FStar_Compiler_List.iter FStar_TypeChecker_Cfg.register_extra_step reflection_primops \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_Reflection_V2_Constants.ml b/ocaml/fstar-lib/generated/FStar_Reflection_V2_Constants.ml index 97b2dd49924..5943b4b7ae7 100644 --- a/ocaml/fstar-lib/generated/FStar_Reflection_V2_Constants.ml +++ b/ocaml/fstar-lib/generated/FStar_Reflection_V2_Constants.ml @@ -84,82 +84,81 @@ let (mk_inspect_pack_pair : Prims.string -> (refl_constant * refl_constant)) let uu___ = FStar_Syntax_Syntax.fv_to_tm pack_fv in { lid = pack_lid; fv = pack_fv; t = uu___ } in (inspect, pack) -let (uu___36 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_ln" +let (uu___0 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_ln" let (fstar_refl_inspect_ln : refl_constant) = - match uu___36 with + match uu___0 with | (fstar_refl_inspect_ln1, fstar_refl_pack_ln) -> fstar_refl_inspect_ln1 let (fstar_refl_pack_ln : refl_constant) = - match uu___36 with + match uu___0 with | (fstar_refl_inspect_ln1, fstar_refl_pack_ln1) -> fstar_refl_pack_ln1 -let (uu___43 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_fv" +let (uu___1 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_fv" let (fstar_refl_inspect_fv : refl_constant) = - match uu___43 with + match uu___1 with | (fstar_refl_inspect_fv1, fstar_refl_pack_fv) -> fstar_refl_inspect_fv1 let (fstar_refl_pack_fv : refl_constant) = - match uu___43 with + match uu___1 with | (fstar_refl_inspect_fv1, fstar_refl_pack_fv1) -> fstar_refl_pack_fv1 -let (uu___50 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_bv" +let (uu___2 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_bv" let (fstar_refl_inspect_bv : refl_constant) = - match uu___50 with + match uu___2 with | (fstar_refl_inspect_bv1, fstar_refl_pack_bv) -> fstar_refl_inspect_bv1 let (fstar_refl_pack_bv : refl_constant) = - match uu___50 with + match uu___2 with | (fstar_refl_inspect_bv1, fstar_refl_pack_bv1) -> fstar_refl_pack_bv1 -let (uu___57 : (refl_constant * refl_constant)) = +let (uu___3 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_namedv" let (fstar_refl_inspect_namedv : refl_constant) = - match uu___57 with + match uu___3 with | (fstar_refl_inspect_namedv1, fstar_refl_pack_namedv) -> fstar_refl_inspect_namedv1 let (fstar_refl_pack_namedv : refl_constant) = - match uu___57 with + match uu___3 with | (fstar_refl_inspect_namedv1, fstar_refl_pack_namedv1) -> fstar_refl_pack_namedv1 -let (uu___64 : (refl_constant * refl_constant)) = +let (uu___4 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_binder" let (fstar_refl_inspect_binder : refl_constant) = - match uu___64 with + match uu___4 with | (fstar_refl_inspect_binder1, fstar_refl_pack_binder) -> fstar_refl_inspect_binder1 let (fstar_refl_pack_binder : refl_constant) = - match uu___64 with + match uu___4 with | (fstar_refl_inspect_binder1, fstar_refl_pack_binder1) -> fstar_refl_pack_binder1 -let (uu___71 : (refl_constant * refl_constant)) = - mk_inspect_pack_pair "_comp" +let (uu___5 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_comp" let (fstar_refl_inspect_comp : refl_constant) = - match uu___71 with + match uu___5 with | (fstar_refl_inspect_comp1, fstar_refl_pack_comp) -> fstar_refl_inspect_comp1 let (fstar_refl_pack_comp : refl_constant) = - match uu___71 with + match uu___5 with | (fstar_refl_inspect_comp1, fstar_refl_pack_comp1) -> fstar_refl_pack_comp1 -let (uu___78 : (refl_constant * refl_constant)) = +let (uu___6 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_sigelt" let (fstar_refl_inspect_sigelt : refl_constant) = - match uu___78 with + match uu___6 with | (fstar_refl_inspect_sigelt1, fstar_refl_pack_sigelt) -> fstar_refl_inspect_sigelt1 let (fstar_refl_pack_sigelt : refl_constant) = - match uu___78 with + match uu___6 with | (fstar_refl_inspect_sigelt1, fstar_refl_pack_sigelt1) -> fstar_refl_pack_sigelt1 -let (uu___85 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_lb" +let (uu___7 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_lb" let (fstar_refl_inspect_lb : refl_constant) = - match uu___85 with + match uu___7 with | (fstar_refl_inspect_lb1, fstar_refl_pack_lb) -> fstar_refl_inspect_lb1 let (fstar_refl_pack_lb : refl_constant) = - match uu___85 with + match uu___7 with | (fstar_refl_inspect_lb1, fstar_refl_pack_lb1) -> fstar_refl_pack_lb1 -let (uu___92 : (refl_constant * refl_constant)) = +let (uu___8 : (refl_constant * refl_constant)) = mk_inspect_pack_pair "_universe" let (fstar_refl_inspect_universe : refl_constant) = - match uu___92 with + match uu___8 with | (fstar_refl_inspect_universe1, fstar_refl_pack_universe) -> fstar_refl_inspect_universe1 let (fstar_refl_pack_universe : refl_constant) = - match uu___92 with + match uu___8 with | (fstar_refl_inspect_universe1, fstar_refl_pack_universe1) -> fstar_refl_pack_universe1 let (fstar_refl_env : FStar_Syntax_Syntax.term) = @@ -288,22 +287,22 @@ let (ref_Mk_namedv_view : refl_constant) = let lid = fstar_refl_data_lid "Mknamedv_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "namedv_view" in - let uu___2 = - let uu___3 = + let uu___9 = fstar_refl_data_lid "namedv_view" in + let uu___10 = + let uu___11 = FStar_Ident.mk_ident ("uniq", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___12 = + let uu___13 = FStar_Ident.mk_ident ("sort", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___14 = + let uu___15 = FStar_Ident.mk_ident ("ppname", FStar_Compiler_Range_Type.dummyRange) in - [uu___7] in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___15] in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + (uu___9, uu___10) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -312,23 +311,23 @@ let (ref_Mk_bv_view : refl_constant) = let lid = fstar_refl_data_lid "Mkbv_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "bv_view" in - let uu___2 = - let uu___3 = + let uu___9 = fstar_refl_data_lid "bv_view" in + let uu___10 = + let uu___11 = FStar_Ident.mk_ident ("index", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___12 = + let uu___13 = FStar_Ident.mk_ident ("sort", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___14 = + let uu___15 = FStar_Ident.mk_ident ("ppname", FStar_Compiler_Range_Type.dummyRange) in - [uu___7] in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___15] in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + (uu___9, uu___10) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -337,22 +336,22 @@ let (ref_Mk_binding : refl_constant) = let lid = fstar_refl_data_lid "Mkbinding" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "binding" in - let uu___2 = - let uu___3 = + let uu___9 = fstar_refl_data_lid "binding" in + let uu___10 = + let uu___11 = FStar_Ident.mk_ident ("uniq", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___12 = + let uu___13 = FStar_Ident.mk_ident ("sort", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___14 = + let uu___15 = FStar_Ident.mk_ident ("ppname", FStar_Compiler_Range_Type.dummyRange) in - [uu___7] in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___15] in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + (uu___9, uu___10) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -361,27 +360,27 @@ let (ref_Mk_binder_view : refl_constant) = let lid = fstar_refl_data_lid "Mkbinder_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "binder_view" in - let uu___2 = - let uu___3 = + let uu___9 = fstar_refl_data_lid "binder_view" in + let uu___10 = + let uu___11 = FStar_Ident.mk_ident ("sort", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___12 = + let uu___13 = FStar_Ident.mk_ident ("qual", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___14 = + let uu___15 = FStar_Ident.mk_ident ("attrs", FStar_Compiler_Range_Type.dummyRange) in - let uu___8 = - let uu___9 = + let uu___16 = + let uu___17 = FStar_Ident.mk_ident ("ppname", FStar_Compiler_Range_Type.dummyRange) in - [uu___9] in - uu___7 :: uu___8 in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___17] in + uu___15 :: uu___16 in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + (uu___9, uu___10) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in @@ -390,28 +389,28 @@ let (ref_Mk_lb : refl_constant) = let lid = fstar_refl_data_lid "Mklb_view" in let attr = let uu___ = - let uu___1 = fstar_refl_data_lid "lb_view" in - let uu___2 = - let uu___3 = + let uu___9 = fstar_refl_data_lid "lb_view" in + let uu___10 = + let uu___11 = FStar_Ident.mk_ident ("lb_fv", FStar_Compiler_Range_Type.dummyRange) in - let uu___4 = - let uu___5 = + let uu___12 = + let uu___13 = FStar_Ident.mk_ident ("lb_us", FStar_Compiler_Range_Type.dummyRange) in - let uu___6 = - let uu___7 = + let uu___14 = + let uu___15 = FStar_Ident.mk_ident ("lb_typ", FStar_Compiler_Range_Type.dummyRange) in - let uu___8 = - let uu___9 = + let uu___16 = + let uu___17 = FStar_Ident.mk_ident ("lb_def", FStar_Compiler_Range_Type.dummyRange) in - [uu___9] in - uu___7 :: uu___8 in - uu___5 :: uu___6 in - uu___3 :: uu___4 in - (uu___1, uu___2) in + [uu___17] in + uu___15 :: uu___16 in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + (uu___9, uu___10) in FStar_Syntax_Syntax.Record_ctor uu___ in let fv = FStar_Syntax_Syntax.lid_as_fv lid (FStar_Pervasives_Native.Some attr) in diff --git a/ocaml/fstar-lib/generated/FStar_Reflection_V2_Interpreter.ml b/ocaml/fstar-lib/generated/FStar_Reflection_V2_Interpreter.ml index dd0fc671008..d75a7b7229f 100644 --- a/ocaml/fstar-lib/generated/FStar_Reflection_V2_Interpreter.ml +++ b/ocaml/fstar-lib/generated/FStar_Reflection_V2_Interpreter.ml @@ -622,6 +622,6 @@ let (reflection_primops : uu___4 :: uu___5 in uu___2 :: uu___3 in uu___ :: uu___1 -let (uu___62 : unit) = +let (uu___0 : unit) = FStar_List.iter FStar_TypeChecker_Cfg.register_extra_step reflection_primops \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_SMTEncoding_Solver.ml b/ocaml/fstar-lib/generated/FStar_SMTEncoding_Solver.ml index fbe34f9a4d3..09a3f8b4ed3 100644 --- a/ocaml/fstar-lib/generated/FStar_SMTEncoding_Solver.ml +++ b/ocaml/fstar-lib/generated/FStar_SMTEncoding_Solver.ml @@ -1220,7 +1220,7 @@ let (ans_fail : answer) = tried_recovery = (ans_ok.tried_recovery); errs = (ans_ok.errs) } -let (uu___476 : answer FStar_Class_Show.showable) = +let (uu___0 : answer FStar_Class_Show.showable) = { FStar_Class_Show.show = (fun ans -> diff --git a/ocaml/fstar-lib/generated/FStar_Syntax_Visit.ml b/ocaml/fstar-lib/generated/FStar_Syntax_Visit.ml index 1c85d4d3d80..45f42edec3f 100644 --- a/ocaml/fstar-lib/generated/FStar_Syntax_Visit.ml +++ b/ocaml/fstar-lib/generated/FStar_Syntax_Visit.ml @@ -4,7 +4,7 @@ type 'a id = let uu___is_I : 'a . 'a id -> Prims.bool = fun projectee -> true let __proj__I__item__run : 'a . 'a id -> 'a = fun projectee -> match projectee with | I run -> run -let (uu___9 : unit id FStar_Class_Monad.monad) = +let (uu___0 : unit id FStar_Class_Monad.monad) = { FStar_Class_Monad.return = (fun uu___1 -> @@ -37,7 +37,7 @@ let (visit_term : fun t -> let uu___ = Obj.magic - (FStar_Syntax_VisitM.visitM_term uu___9 pq + (FStar_Syntax_VisitM.visitM_term uu___0 pq (fun uu___1 -> (Obj.magic (op_Less_Less (fun uu___1 -> I uu___1) vt)) uu___1) t) in @@ -54,7 +54,7 @@ let (visit_term_univs : fun t -> let uu___ = Obj.magic - (FStar_Syntax_VisitM.visitM_term_univs uu___9 pq + (FStar_Syntax_VisitM.visitM_term_univs uu___0 pq (fun uu___1 -> (Obj.magic (op_Less_Less (fun uu___1 -> I uu___1) vt)) uu___1) @@ -74,7 +74,7 @@ let (visit_sigelt : fun se -> let uu___ = Obj.magic - (FStar_Syntax_VisitM.visitM_sigelt uu___9 pq + (FStar_Syntax_VisitM.visitM_sigelt uu___0 pq (fun uu___1 -> (Obj.magic (op_Less_Less (fun uu___1 -> I uu___1) vt)) uu___1) diff --git a/ocaml/fstar-lib/generated/FStar_Tactics_Hooks.ml b/ocaml/fstar-lib/generated/FStar_Tactics_Hooks.ml index 60b15f1aee6..19bcaa42df2 100644 --- a/ocaml/fstar-lib/generated/FStar_Tactics_Hooks.ml +++ b/ocaml/fstar-lib/generated/FStar_Tactics_Hooks.ml @@ -1775,7 +1775,7 @@ let (handle_smt_goal : gs1) in gs | FStar_Pervasives_Native.None -> [(env, goal1)]) -let (uu___842 : +let (uu___0 : FStar_Syntax_Syntax.term FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V2_Embeddings.e_term type blob_t = @@ -1889,7 +1889,7 @@ let (splice : (FStar_Syntax_Embeddings.e_tuple2 FStar_Reflection_V2_Embeddings.e_env (FStar_Syntax_Embeddings.e_option - uu___842)) + uu___0)) ({ FStar_TypeChecker_Env.solver = (env.FStar_TypeChecker_Env.solver); @@ -2020,14 +2020,14 @@ let (splice : (FStar_Syntax_Embeddings.e_option (FStar_Syntax_Embeddings.e_tuple2 FStar_Syntax_Embeddings.e_string - uu___842)))) + uu___0)))) (FStar_Syntax_Embeddings.e_tuple3 FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_Embeddings.e_sigelt (FStar_Syntax_Embeddings.e_option (FStar_Syntax_Embeddings.e_tuple2 FStar_Syntax_Embeddings.e_string - uu___842))) + uu___0))) (FStar_Syntax_Embeddings.e_list (FStar_Syntax_Embeddings.e_tuple3 FStar_Syntax_Embeddings.e_bool @@ -2035,7 +2035,7 @@ let (splice : (FStar_Syntax_Embeddings.e_option (FStar_Syntax_Embeddings.e_tuple2 FStar_Syntax_Embeddings.e_string - uu___842))))) tau1 + uu___0))))) tau1 tactic_already_typed ps in match uu___7 with | (gs, diff --git a/ocaml/fstar-lib/generated/FStar_Tactics_V1_Primops.ml b/ocaml/fstar-lib/generated/FStar_Tactics_V1_Primops.ml index ded173cbc86..f59f5109623 100644 --- a/ocaml/fstar-lib/generated/FStar_Tactics_V1_Primops.ml +++ b/ocaml/fstar-lib/generated/FStar_Tactics_V1_Primops.ml @@ -1,6 +1,6 @@ open Prims let solve : 'a . 'a -> 'a = fun ev -> ev -let (uu___2 : +let (uu___0 : FStar_Syntax_Syntax.term FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V1_Embeddings.e_term let (fix_module : @@ -17,21 +17,21 @@ let (fix_module : then let p' = let uu___1 = - let uu___3 = - let uu___4 = - let uu___5 = - let uu___6 = FStar_Compiler_List.tl p in - FStar_Compiler_List.tl uu___6 in - FStar_Compiler_List.tl uu___5 in - FStar_Compiler_List.tl uu___4 in - FStar_Compiler_List.tl uu___3 in + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = FStar_Compiler_List.tl p in + FStar_Compiler_List.tl uu___5 in + FStar_Compiler_List.tl uu___4 in + FStar_Compiler_List.tl uu___3 in + FStar_Compiler_List.tl uu___2 in FStar_Compiler_List.op_At ["FStar"; "Stubs"; "Tactics"; "V1"; "Builtins"] uu___1 in let uu___1 = - let uu___3 = + let uu___2 = FStar_Class_HasRange.pos FStar_Ident.hasrange_lident ps.FStar_TypeChecker_Primops_Base.name in - FStar_Ident.lid_of_path p' uu___3 in + FStar_Ident.lid_of_path p' uu___2 in { FStar_TypeChecker_Primops_Base.name = uu___1; FStar_TypeChecker_Primops_Base.arity = @@ -61,8 +61,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = (FStar_TypeChecker_NBETerm.e_list FStar_Tactics_Embedding.e_goal_nbe) FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_Monad.set_goals FStar_Tactics_Monad.set_goals in - let uu___3 = - let uu___4 = + let uu___2 = + let uu___3 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "set_smt_goals" (FStar_Syntax_Embeddings.e_list FStar_Tactics_Embedding.e_goal) FStar_Syntax_Embeddings.e_unit @@ -70,52 +70,52 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_goal_nbe) FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_Monad.set_smt_goals FStar_Tactics_Monad.set_smt_goals in - let uu___5 = - let uu___6 = - let uu___7 = + let uu___4 = + let uu___5 = + let uu___6 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___8 = + let uu___7 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one "catch" - FStar_Syntax_Embeddings.e_any uu___7 + FStar_Syntax_Embeddings.e_any uu___6 (FStar_Syntax_Embeddings.e_either FStar_Tactics_Embedding.e_exn FStar_Syntax_Embeddings.e_any) FStar_TypeChecker_NBETerm.e_any - uu___8 + uu___7 (FStar_TypeChecker_NBETerm.e_either FStar_Tactics_Embedding.e_exn_nbe FStar_TypeChecker_NBETerm.e_any) - (fun uu___9 -> FStar_Tactics_Monad.catch) - (fun uu___9 -> FStar_Tactics_Monad.catch) in - let uu___7 = - let uu___8 = - let uu___9 = + (fun uu___8 -> FStar_Tactics_Monad.catch) + (fun uu___8 -> FStar_Tactics_Monad.catch) in + let uu___6 = + let uu___7 = + let uu___8 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___10 = + let uu___9 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one "recover" - FStar_Syntax_Embeddings.e_any uu___9 + FStar_Syntax_Embeddings.e_any uu___8 (FStar_Syntax_Embeddings.e_either FStar_Tactics_Embedding.e_exn FStar_Syntax_Embeddings.e_any) - FStar_TypeChecker_NBETerm.e_any uu___10 + FStar_TypeChecker_NBETerm.e_any uu___9 (FStar_TypeChecker_NBETerm.e_either FStar_Tactics_Embedding.e_exn_nbe FStar_TypeChecker_NBETerm.e_any) - (fun uu___11 -> FStar_Tactics_Monad.recover) - (fun uu___11 -> FStar_Tactics_Monad.recover) in - let uu___9 = - let uu___10 = + (fun uu___10 -> FStar_Tactics_Monad.recover) + (fun uu___10 -> FStar_Tactics_Monad.recover) in + let uu___8 = + let uu___9 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "intro" FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_Embeddings.e_binder FStar_TypeChecker_NBETerm.e_unit FStar_Reflection_V2_NBEEmbeddings.e_binder FStar_Tactics_V1_Basic.intro FStar_Tactics_V1_Basic.intro in - let uu___11 = - let uu___12 = + let uu___10 = + let uu___11 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "intro_rec" FStar_Syntax_Embeddings.e_unit (FStar_Syntax_Embeddings.e_tuple2 @@ -127,8 +127,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binder) FStar_Tactics_V1_Basic.intro_rec FStar_Tactics_V1_Basic.intro_rec in - let uu___13 = - let uu___14 = + let uu___12 = + let uu___13 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "norm" (FStar_Syntax_Embeddings.e_list @@ -138,12 +138,12 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_norm_step) FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.norm FStar_Tactics_V1_Basic.norm in - let uu___15 = - let uu___16 = + let uu___14 = + let uu___15 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "norm_term_env" FStar_Reflection_V2_Embeddings.e_env (FStar_Syntax_Embeddings.e_list - FStar_Syntax_Embeddings.e_norm_step) uu___2 uu___2 + FStar_Syntax_Embeddings.e_norm_step) uu___0 uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env (FStar_TypeChecker_NBETerm.e_list FStar_TypeChecker_NBETerm.e_norm_step) @@ -151,8 +151,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V1_Basic.norm_term_env FStar_Tactics_V1_Basic.norm_term_env in - let uu___17 = - let uu___18 = + let uu___16 = + let uu___17 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "norm_binder_type" (FStar_Syntax_Embeddings.e_list @@ -165,8 +165,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.norm_binder_type FStar_Tactics_V1_Basic.norm_binder_type in - let uu___19 = - let uu___20 = + let uu___18 = + let uu___19 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "rename_to" FStar_Reflection_V2_Embeddings.e_binder FStar_Syntax_Embeddings.e_string @@ -176,8 +176,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binder FStar_Tactics_V1_Basic.rename_to FStar_Tactics_V1_Basic.rename_to in - let uu___21 = - let uu___22 = + let uu___20 = + let uu___21 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "binder_retype" FStar_Reflection_V2_Embeddings.e_binder @@ -186,8 +186,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.binder_retype FStar_Tactics_V1_Basic.binder_retype in - let uu___23 = - let uu___24 = + let uu___22 = + let uu___23 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "revert" FStar_Syntax_Embeddings.e_unit @@ -196,8 +196,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.revert FStar_Tactics_V1_Basic.revert in - let uu___25 = - let uu___26 = + let uu___24 = + let uu___25 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "clear_top" FStar_Syntax_Embeddings.e_unit @@ -206,8 +206,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.clear_top FStar_Tactics_V1_Basic.clear_top in - let uu___27 = - let uu___28 = + let uu___26 = + let uu___27 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "clear" FStar_Reflection_V2_Embeddings.e_binder @@ -216,8 +216,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.clear FStar_Tactics_V1_Basic.clear in - let uu___29 = - let uu___30 = + let uu___28 = + let uu___29 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "rewrite" FStar_Reflection_V2_Embeddings.e_binder @@ -226,8 +226,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.rewrite FStar_Tactics_V1_Basic.rewrite in - let uu___31 = - let uu___32 = + let uu___30 = + let uu___31 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "refine_intro" FStar_Syntax_Embeddings.e_unit @@ -236,12 +236,12 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.refine_intro FStar_Tactics_V1_Basic.refine_intro in - let uu___33 = - let uu___34 = + let uu___32 = + let uu___33 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "t_exact" FStar_Syntax_Embeddings.e_bool - FStar_Syntax_Embeddings.e_bool uu___2 + FStar_Syntax_Embeddings.e_bool uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -249,14 +249,14 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_exact FStar_Tactics_V1_Basic.t_exact in - let uu___35 = - let uu___36 = + let uu___34 = + let uu___35 = FStar_Tactics_InterpFuns.mk_tac_step_4 Prims.int_zero "t_apply" FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -265,13 +265,13 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_apply FStar_Tactics_V1_Basic.t_apply in - let uu___37 = - let uu___38 = + let uu___36 = + let uu___37 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "t_apply_lemma" FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -279,8 +279,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_apply_lemma FStar_Tactics_V1_Basic.t_apply_lemma in - let uu___39 = - let uu___40 = + let uu___38 = + let uu___39 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "set_options" FStar_Syntax_Embeddings.e_string @@ -289,41 +289,41 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.set_options FStar_Tactics_V1_Basic.set_options in - let uu___41 = - let uu___42 = + let uu___40 = + let uu___41 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "tcc" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 FStar_Reflection_V2_Embeddings.e_comp FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_comp FStar_Tactics_V1_Basic.tcc FStar_Tactics_V1_Basic.tcc in - let uu___43 = - let uu___44 = + let uu___42 = + let uu___43 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "tc" FStar_Reflection_V2_Embeddings.e_env - uu___2 uu___2 + uu___0 uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V1_Basic.tc FStar_Tactics_V1_Basic.tc in - let uu___45 = - let uu___46 = + let uu___44 = + let uu___45 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "unshelve" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.unshelve FStar_Tactics_V1_Basic.unshelve in - let uu___47 = - let uu___48 = + let uu___46 = + let uu___47 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one "unquote" FStar_Syntax_Embeddings.e_any @@ -333,12 +333,12 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_TypeChecker_NBETerm.e_any FStar_Tactics_V1_Basic.unquote - (fun uu___49 -> - fun uu___50 -> + (fun uu___48 -> + fun uu___49 -> FStar_Compiler_Effect.failwith "NBE unquote") in - let uu___49 = - let uu___50 = + let uu___48 = + let uu___49 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "prune" @@ -348,8 +348,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.prune FStar_Tactics_V1_Basic.prune in - let uu___51 = - let uu___52 = + let uu___50 = + let uu___51 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "addns" @@ -359,8 +359,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.addns FStar_Tactics_V1_Basic.addns in - let uu___53 = - let uu___54 = + let uu___52 = + let uu___53 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "print" @@ -370,8 +370,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.print FStar_Tactics_V1_Basic.print in - let uu___55 = - let uu___56 = + let uu___54 = + let uu___55 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "debugging" @@ -381,8 +381,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.debugging FStar_Tactics_V1_Basic.debugging in - let uu___57 = - let uu___58 = + let uu___56 = + let uu___57 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "dump" @@ -392,8 +392,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.dump FStar_Tactics_V1_Basic.dump in - let uu___59 = - let uu___60 = + let uu___58 = + let uu___59 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "dump_all" @@ -405,8 +405,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.dump_all FStar_Tactics_V1_Basic.dump_all in - let uu___61 = - let uu___62 = + let uu___60 = + let uu___61 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "dump_uvars_of" @@ -418,28 +418,28 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.dump_uvars_of FStar_Tactics_V1_Basic.dump_uvars_of in - let uu___63 = - let uu___64 + let uu___62 = + let uu___63 = - let uu___65 + let uu___64 = FStar_Tactics_Interpreter.e_tactic_1 FStar_Reflection_V1_Embeddings.e_term (FStar_Syntax_Embeddings.e_tuple2 FStar_Syntax_Embeddings.e_bool FStar_Tactics_Embedding.e_ctrl_flag) in - let uu___66 + let uu___65 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_unit in - let uu___67 + let uu___66 = FStar_Tactics_Interpreter.e_tactic_nbe_1 FStar_Reflection_V1_NBEEmbeddings.e_term (FStar_TypeChecker_NBETerm.e_tuple2 FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_Embedding.e_ctrl_flag_nbe) in - let uu___68 + let uu___67 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_unit in @@ -447,18 +447,18 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = Prims.int_zero "ctrl_rewrite" FStar_Tactics_Embedding.e_direction + uu___64 uu___65 - uu___66 FStar_Syntax_Embeddings.e_unit FStar_Tactics_Embedding.e_direction_nbe + uu___66 uu___67 - uu___68 FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_CtrlRewrite.ctrl_rewrite FStar_Tactics_CtrlRewrite.ctrl_rewrite in - let uu___65 + let uu___64 = - let uu___66 + let uu___65 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -469,9 +469,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_trefl FStar_Tactics_V1_Basic.t_trefl in - let uu___67 + let uu___66 = - let uu___68 + let uu___67 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -482,9 +482,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.dup FStar_Tactics_V1_Basic.dup in - let uu___69 + let uu___68 = - let uu___70 + let uu___69 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -495,9 +495,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.tadmit_t FStar_Tactics_V1_Basic.tadmit_t in - let uu___71 + let uu___70 = - let uu___72 + let uu___71 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -508,9 +508,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.join FStar_Tactics_V1_Basic.join in - let uu___73 + let uu___72 = - let uu___74 + let uu___73 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -527,9 +527,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int)) FStar_Tactics_V1_Basic.t_destruct FStar_Tactics_V1_Basic.t_destruct in - let uu___75 + let uu___74 = - let uu___76 + let uu___75 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -540,9 +540,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Tactics_V1_Basic.top_env FStar_Tactics_V1_Basic.top_env in - let uu___77 + let uu___76 = - let uu___78 + let uu___77 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -553,9 +553,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term_view FStar_Tactics_V1_Basic.inspect FStar_Tactics_V1_Basic.inspect in - let uu___79 + let uu___78 = - let uu___80 + let uu___79 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -566,9 +566,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.pack FStar_Tactics_V1_Basic.pack in - let uu___81 + let uu___80 = - let uu___82 + let uu___81 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -579,9 +579,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.pack_curried FStar_Tactics_V1_Basic.pack_curried in - let uu___83 + let uu___82 = - let uu___84 + let uu___83 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -592,9 +592,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int FStar_Tactics_V1_Basic.fresh FStar_Tactics_V1_Basic.fresh in - let uu___85 + let uu___84 = - let uu___86 + let uu___85 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -605,9 +605,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int FStar_Tactics_V1_Basic.curms FStar_Tactics_V1_Basic.curms in - let uu___87 + let uu___86 = - let uu___88 + let uu___87 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -622,9 +622,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.uvar_env FStar_Tactics_V1_Basic.uvar_env in - let uu___89 + let uu___88 = - let uu___90 + let uu___89 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -637,9 +637,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.ghost_uvar_env FStar_Tactics_V1_Basic.ghost_uvar_env in - let uu___91 + let uu___90 = - let uu___92 + let uu___91 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -650,9 +650,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.fresh_universe_uvar FStar_Tactics_V1_Basic.fresh_universe_uvar in - let uu___93 + let uu___92 = - let uu___94 + let uu___93 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -667,9 +667,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.unify_env FStar_Tactics_V1_Basic.unify_env in - let uu___95 + let uu___94 = - let uu___96 + let uu___95 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -684,9 +684,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.unify_guard_env FStar_Tactics_V1_Basic.unify_guard_env in - let uu___97 + let uu___96 = - let uu___98 + let uu___97 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -701,9 +701,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.match_env FStar_Tactics_V1_Basic.match_env in - let uu___99 + let uu___98 = - let uu___100 + let uu___99 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -718,9 +718,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V1_Basic.launch_process FStar_Tactics_V1_Basic.launch_process in - let uu___101 + let uu___100 = - let uu___102 + let uu___101 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -731,9 +731,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_bv FStar_Tactics_V1_Basic.fresh_bv_named FStar_Tactics_V1_Basic.fresh_bv_named in - let uu___103 + let uu___102 = - let uu___104 + let uu___103 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -744,9 +744,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.change FStar_Tactics_V1_Basic.change in - let uu___105 + let uu___104 = - let uu___106 + let uu___105 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -757,9 +757,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_guard_policy_nbe FStar_Tactics_V1_Basic.get_guard_policy FStar_Tactics_V1_Basic.get_guard_policy in - let uu___107 + let uu___106 = - let uu___108 + let uu___107 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -770,9 +770,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.set_guard_policy FStar_Tactics_V1_Basic.set_guard_policy in - let uu___109 + let uu___108 = - let uu___110 + let uu___109 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -783,9 +783,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.lax_on FStar_Tactics_V1_Basic.lax_on in - let uu___111 + let uu___110 = - let uu___112 + let uu___111 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one @@ -798,16 +798,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_any FStar_Tactics_V1_Basic.lget (fun - uu___113 + uu___112 -> fun - uu___114 + uu___113 -> FStar_Tactics_Monad.fail "sorry, `lget` does not work in NBE") in - let uu___113 + let uu___112 = - let uu___114 + let uu___113 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_one @@ -822,19 +822,19 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.lset (fun - uu___115 + uu___114 -> fun - uu___116 + uu___115 -> fun - uu___117 + uu___116 -> FStar_Tactics_Monad.fail "sorry, `lset` does not work in NBE") in - let uu___115 + let uu___114 = - let uu___116 + let uu___115 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -845,9 +845,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.set_urgency FStar_Tactics_V1_Basic.set_urgency in - let uu___117 + let uu___116 = - let uu___118 + let uu___117 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -858,9 +858,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_commute_applied_match FStar_Tactics_V1_Basic.t_commute_applied_match in - let uu___119 + let uu___118 = - let uu___120 + let uu___119 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -871,9 +871,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.gather_explicit_guards_for_resolved_goals FStar_Tactics_V1_Basic.gather_explicit_guards_for_resolved_goals in - let uu___121 + let uu___120 = - let uu___122 + let uu___121 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -886,9 +886,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_term FStar_Tactics_V1_Basic.string_to_term FStar_Tactics_V1_Basic.string_to_term in - let uu___123 + let uu___122 = - let uu___124 + let uu___123 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -905,9 +905,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V1_NBEEmbeddings.e_bv) FStar_Tactics_V1_Basic.push_bv_dsenv FStar_Tactics_V1_Basic.push_bv_dsenv in - let uu___125 + let uu___124 = - let uu___126 + let uu___125 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -918,9 +918,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V1_Basic.term_to_string FStar_Tactics_V1_Basic.term_to_string in - let uu___127 + let uu___126 = - let uu___128 + let uu___127 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -931,9 +931,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V1_Basic.comp_to_string FStar_Tactics_V1_Basic.comp_to_string in - let uu___129 + let uu___128 = - let uu___130 + let uu___129 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -944,9 +944,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V1_Basic.range_to_string FStar_Tactics_V1_Basic.range_to_string in - let uu___131 + let uu___130 = - let uu___132 + let uu___131 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -959,15 +959,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V1_Basic.term_eq_old FStar_Tactics_V1_Basic.term_eq_old in + let uu___132 + = let uu___133 = let uu___134 = - let uu___135 - = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___136 + let uu___135 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in @@ -976,23 +976,23 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = "with_compat_pre_core" FStar_Syntax_Embeddings.e_any FStar_Syntax_Embeddings.e_int - uu___135 + uu___134 FStar_Syntax_Embeddings.e_any FStar_TypeChecker_NBETerm.e_any FStar_TypeChecker_NBETerm.e_int - uu___136 + uu___135 FStar_TypeChecker_NBETerm.e_any (fun - uu___137 + uu___136 -> FStar_Tactics_V1_Basic.with_compat_pre_core) (fun - uu___137 + uu___136 -> FStar_Tactics_V1_Basic.with_compat_pre_core) in - let uu___135 + let uu___134 = - let uu___136 + let uu___135 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1003,9 +1003,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_vconfig FStar_Tactics_V1_Basic.get_vconfig FStar_Tactics_V1_Basic.get_vconfig in - let uu___137 + let uu___136 = - let uu___138 + let uu___137 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1016,9 +1016,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.set_vconfig FStar_Tactics_V1_Basic.set_vconfig in - let uu___139 + let uu___138 = - let uu___140 + let uu___139 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1029,9 +1029,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V1_Basic.t_smt_sync FStar_Tactics_V1_Basic.t_smt_sync in - let uu___141 + let uu___140 = - let uu___142 + let uu___141 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1044,155 +1044,155 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int) FStar_Tactics_V1_Basic.free_uvars FStar_Tactics_V1_Basic.free_uvars in - [uu___142] in - uu___140 + [uu___141] in + uu___139 :: - uu___141 in - uu___138 + uu___140 in + uu___137 :: - uu___139 in - uu___136 + uu___138 in + uu___135 :: - uu___137 in - uu___134 + uu___136 in + uu___133 :: - uu___135 in - uu___132 + uu___134 in + uu___131 :: - uu___133 in - uu___130 + uu___132 in + uu___129 :: - uu___131 in - uu___128 + uu___130 in + uu___127 :: - uu___129 in - uu___126 + uu___128 in + uu___125 :: - uu___127 in - uu___124 + uu___126 in + uu___123 :: - uu___125 in - uu___122 + uu___124 in + uu___121 :: - uu___123 in - uu___120 + uu___122 in + uu___119 :: - uu___121 in - uu___118 + uu___120 in + uu___117 :: - uu___119 in - uu___116 + uu___118 in + uu___115 :: - uu___117 in - uu___114 + uu___116 in + uu___113 :: - uu___115 in - uu___112 + uu___114 in + uu___111 :: - uu___113 in - uu___110 + uu___112 in + uu___109 :: - uu___111 in - uu___108 + uu___110 in + uu___107 :: - uu___109 in - uu___106 + uu___108 in + uu___105 :: - uu___107 in - uu___104 + uu___106 in + uu___103 :: - uu___105 in - uu___102 + uu___104 in + uu___101 :: - uu___103 in - uu___100 + uu___102 in + uu___99 :: - uu___101 in - uu___98 + uu___100 in + uu___97 :: - uu___99 in - uu___96 + uu___98 in + uu___95 :: - uu___97 in - uu___94 + uu___96 in + uu___93 :: - uu___95 in - uu___92 + uu___94 in + uu___91 :: - uu___93 in - uu___90 + uu___92 in + uu___89 :: - uu___91 in - uu___88 + uu___90 in + uu___87 :: - uu___89 in - uu___86 + uu___88 in + uu___85 :: - uu___87 in - uu___84 + uu___86 in + uu___83 :: - uu___85 in - uu___82 + uu___84 in + uu___81 :: - uu___83 in - uu___80 + uu___82 in + uu___79 :: - uu___81 in - uu___78 + uu___80 in + uu___77 :: - uu___79 in - uu___76 + uu___78 in + uu___75 :: - uu___77 in - uu___74 + uu___76 in + uu___73 :: - uu___75 in - uu___72 + uu___74 in + uu___71 :: - uu___73 in - uu___70 + uu___72 in + uu___69 :: - uu___71 in - uu___68 + uu___70 in + uu___67 :: - uu___69 in - uu___66 + uu___68 in + uu___65 :: - uu___67 in - uu___64 :: - uu___65 in - uu___62 :: - uu___63 in - uu___60 :: - uu___61 in - uu___58 :: - uu___59 in - uu___56 :: uu___57 in - uu___54 :: uu___55 in - uu___52 :: uu___53 in - uu___50 :: uu___51 in - uu___48 :: uu___49 in - uu___46 :: uu___47 in - uu___44 :: uu___45 in - uu___42 :: uu___43 in - uu___40 :: uu___41 in - uu___38 :: uu___39 in - uu___36 :: uu___37 in - uu___34 :: uu___35 in - uu___32 :: uu___33 in - uu___30 :: uu___31 in - uu___28 :: uu___29 in - uu___26 :: uu___27 in - uu___24 :: uu___25 in - uu___22 :: uu___23 in - uu___20 :: uu___21 in - uu___18 :: uu___19 in - uu___16 :: uu___17 in - uu___14 :: uu___15 in - uu___12 :: uu___13 in - uu___10 :: uu___11 in - uu___8 :: uu___9 in - uu___6 :: uu___7 in - uu___4 :: uu___5 in - uu___1 :: uu___3 in + uu___66 in + uu___63 :: + uu___64 in + uu___61 :: + uu___62 in + uu___59 :: + uu___60 in + uu___57 :: + uu___58 in + uu___55 :: uu___56 in + uu___53 :: uu___54 in + uu___51 :: uu___52 in + uu___49 :: uu___50 in + uu___47 :: uu___48 in + uu___45 :: uu___46 in + uu___43 :: uu___44 in + uu___41 :: uu___42 in + uu___39 :: uu___40 in + uu___37 :: uu___38 in + uu___35 :: uu___36 in + uu___33 :: uu___34 in + uu___31 :: uu___32 in + uu___29 :: uu___30 in + uu___27 :: uu___28 in + uu___25 :: uu___26 in + uu___23 :: uu___24 in + uu___21 :: uu___22 in + uu___19 :: uu___20 in + uu___17 :: uu___18 in + uu___15 :: uu___16 in + uu___13 :: uu___14 in + uu___11 :: uu___12 in + uu___9 :: uu___10 in + uu___7 :: uu___8 in + uu___5 :: uu___6 in + uu___3 :: uu___4 in + uu___1 :: uu___2 in FStar_Compiler_List.map fix_module uu___ \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_Tactics_V2_Primops.ml b/ocaml/fstar-lib/generated/FStar_Tactics_V2_Primops.ml index e1d79806377..f7d60d42a08 100644 --- a/ocaml/fstar-lib/generated/FStar_Tactics_V2_Primops.ml +++ b/ocaml/fstar-lib/generated/FStar_Tactics_V2_Primops.ml @@ -1,6 +1,6 @@ open Prims let solve : 'a . 'a -> 'a = fun ev -> ev -let (uu___2 : +let (uu___0 : FStar_Syntax_Syntax.term FStar_Syntax_Embeddings_Base.embedding) = FStar_Reflection_V2_Embeddings.e_term let unseal : @@ -71,7 +71,7 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Types.tracepoint_with_psc FStar_Tactics_Types.tracepoint_with_psc in let uu___1 = - let uu___3 = + let uu___2 = FStar_Tactics_InterpFuns.mk_tot_step_2 Prims.int_zero "set_proofstate_range" FStar_Tactics_Embedding.e_proofstate FStar_Syntax_Embeddings.e_range FStar_Tactics_Embedding.e_proofstate @@ -80,24 +80,24 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_proofstate_nbe FStar_Tactics_Types.set_proofstate_range FStar_Tactics_Types.set_proofstate_range in - let uu___4 = - let uu___5 = + let uu___3 = + let uu___4 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "incr_depth" FStar_Tactics_Embedding.e_proofstate FStar_Tactics_Embedding.e_proofstate FStar_Tactics_Embedding.e_proofstate_nbe FStar_Tactics_Embedding.e_proofstate_nbe FStar_Tactics_Types.incr_depth FStar_Tactics_Types.incr_depth in - let uu___6 = - let uu___7 = + let uu___5 = + let uu___6 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "decr_depth" FStar_Tactics_Embedding.e_proofstate FStar_Tactics_Embedding.e_proofstate FStar_Tactics_Embedding.e_proofstate_nbe FStar_Tactics_Embedding.e_proofstate_nbe FStar_Tactics_Types.decr_depth FStar_Tactics_Types.decr_depth in - let uu___8 = - let uu___9 = + let uu___7 = + let uu___8 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "goals_of" FStar_Tactics_Embedding.e_proofstate (FStar_Syntax_Embeddings.e_list FStar_Tactics_Embedding.e_goal) @@ -105,8 +105,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = (FStar_TypeChecker_NBETerm.e_list FStar_Tactics_Embedding.e_goal_nbe) FStar_Tactics_Types.goals_of FStar_Tactics_Types.goals_of in - let uu___10 = - let uu___11 = + let uu___9 = + let uu___10 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "smt_goals_of" FStar_Tactics_Embedding.e_proofstate (FStar_Syntax_Embeddings.e_list @@ -116,32 +116,32 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_goal_nbe) FStar_Tactics_Types.smt_goals_of FStar_Tactics_Types.smt_goals_of in - let uu___12 = - let uu___13 = + let uu___11 = + let uu___12 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "goal_env" FStar_Tactics_Embedding.e_goal FStar_Reflection_V2_Embeddings.e_env FStar_Tactics_Embedding.e_goal_nbe FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Tactics_Types.goal_env FStar_Tactics_Types.goal_env in - let uu___14 = - let uu___15 = + let uu___13 = + let uu___14 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero - "goal_type" FStar_Tactics_Embedding.e_goal uu___2 + "goal_type" FStar_Tactics_Embedding.e_goal uu___0 FStar_Tactics_Embedding.e_goal_nbe FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_Types.goal_type FStar_Tactics_Types.goal_type in - let uu___16 = - let uu___17 = + let uu___15 = + let uu___16 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero - "goal_witness" FStar_Tactics_Embedding.e_goal uu___2 + "goal_witness" FStar_Tactics_Embedding.e_goal uu___0 FStar_Tactics_Embedding.e_goal_nbe FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_Types.goal_witness FStar_Tactics_Types.goal_witness in - let uu___18 = - let uu___19 = + let uu___17 = + let uu___18 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "is_guard" FStar_Tactics_Embedding.e_goal FStar_Syntax_Embeddings.e_bool @@ -149,8 +149,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_Types.is_guard FStar_Tactics_Types.is_guard in - let uu___20 = - let uu___21 = + let uu___19 = + let uu___20 = FStar_Tactics_InterpFuns.mk_tot_step_1 Prims.int_zero "get_label" FStar_Tactics_Embedding.e_goal FStar_Syntax_Embeddings.e_string @@ -158,8 +158,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_Types.get_label FStar_Tactics_Types.get_label in - let uu___22 = - let uu___23 = + let uu___21 = + let uu___22 = FStar_Tactics_InterpFuns.mk_tot_step_2 Prims.int_zero "set_label" FStar_Syntax_Embeddings.e_string @@ -170,17 +170,17 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_goal_nbe FStar_Tactics_Types.set_label FStar_Tactics_Types.set_label in - let uu___24 = - let uu___25 = - let uu___26 = + let uu___23 = + let uu___24 = + let uu___25 = FStar_Tactics_InterpFuns.mk_tac_step_1 - Prims.int_zero "compress" uu___2 uu___2 + Prims.int_zero "compress" uu___0 uu___0 FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.compress FStar_Tactics_V2_Basic.compress in - let uu___27 = - let uu___28 = + let uu___26 = + let uu___27 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "set_goals" (FStar_Syntax_Embeddings.e_list @@ -191,8 +191,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_Monad.set_goals FStar_Tactics_Monad.set_goals in - let uu___29 = - let uu___30 = + let uu___28 = + let uu___29 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "set_smt_goals" (FStar_Syntax_Embeddings.e_list @@ -203,53 +203,53 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_Monad.set_smt_goals FStar_Tactics_Monad.set_smt_goals in - let uu___31 = - let uu___32 = - let uu___33 = + let uu___30 = + let uu___31 = + let uu___32 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___34 = + let uu___33 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one "catch" - FStar_Syntax_Embeddings.e_any uu___33 + FStar_Syntax_Embeddings.e_any uu___32 (FStar_Syntax_Embeddings.e_either FStar_Tactics_Embedding.e_exn FStar_Syntax_Embeddings.e_any) - FStar_TypeChecker_NBETerm.e_any uu___34 + FStar_TypeChecker_NBETerm.e_any uu___33 (FStar_TypeChecker_NBETerm.e_either FStar_Tactics_Embedding.e_exn_nbe FStar_TypeChecker_NBETerm.e_any) - (fun uu___35 -> + (fun uu___34 -> FStar_Tactics_Monad.catch) - (fun uu___35 -> + (fun uu___34 -> FStar_Tactics_Monad.catch) in - let uu___33 = - let uu___34 = - let uu___35 = + let uu___32 = + let uu___33 = + let uu___34 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___36 = + let uu___35 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one "recover" - FStar_Syntax_Embeddings.e_any uu___35 + FStar_Syntax_Embeddings.e_any uu___34 (FStar_Syntax_Embeddings.e_either FStar_Tactics_Embedding.e_exn FStar_Syntax_Embeddings.e_any) FStar_TypeChecker_NBETerm.e_any - uu___36 + uu___35 (FStar_TypeChecker_NBETerm.e_either FStar_Tactics_Embedding.e_exn_nbe FStar_TypeChecker_NBETerm.e_any) - (fun uu___37 -> + (fun uu___36 -> FStar_Tactics_Monad.recover) - (fun uu___37 -> + (fun uu___36 -> FStar_Tactics_Monad.recover) in - let uu___35 = - let uu___36 = + let uu___34 = + let uu___35 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "intro" FStar_Syntax_Embeddings.e_unit @@ -258,8 +258,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding FStar_Tactics_V2_Basic.intro FStar_Tactics_V2_Basic.intro in - let uu___37 = - let uu___38 = + let uu___36 = + let uu___37 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "intros" FStar_Syntax_Embeddings.e_int @@ -270,8 +270,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding) FStar_Tactics_V2_Basic.intros FStar_Tactics_V2_Basic.intros in - let uu___39 = - let uu___40 = + let uu___38 = + let uu___39 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "intro_rec" FStar_Syntax_Embeddings.e_unit @@ -284,8 +284,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding) FStar_Tactics_V2_Basic.intro_rec FStar_Tactics_V2_Basic.intro_rec in - let uu___41 = - let uu___42 = + let uu___40 = + let uu___41 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "norm" (FStar_Syntax_Embeddings.e_list @@ -296,15 +296,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.norm FStar_Tactics_V2_Basic.norm in - let uu___43 = - let uu___44 = + let uu___42 = + let uu___43 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "norm_term_env" FStar_Reflection_V2_Embeddings.e_env (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_norm_step) - uu___2 uu___2 + uu___0 uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env (FStar_TypeChecker_NBETerm.e_list FStar_TypeChecker_NBETerm.e_norm_step) @@ -312,8 +312,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.norm_term_env FStar_Tactics_V2_Basic.norm_term_env in - let uu___45 = - let uu___46 = + let uu___44 = + let uu___45 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "norm_binding_type" @@ -327,8 +327,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.norm_binding_type FStar_Tactics_V2_Basic.norm_binding_type in - let uu___47 = - let uu___48 = + let uu___46 = + let uu___47 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "rename_to" @@ -340,8 +340,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding FStar_Tactics_V2_Basic.rename_to FStar_Tactics_V2_Basic.rename_to in - let uu___49 = - let uu___50 = + let uu___48 = + let uu___49 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "var_retype" @@ -351,8 +351,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.var_retype FStar_Tactics_V2_Basic.var_retype in - let uu___51 = - let uu___52 = + let uu___50 = + let uu___51 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "revert" @@ -362,8 +362,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.revert FStar_Tactics_V2_Basic.revert in - let uu___53 = - let uu___54 = + let uu___52 = + let uu___53 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "clear_top" @@ -373,8 +373,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.clear_top FStar_Tactics_V2_Basic.clear_top in - let uu___55 = - let uu___56 = + let uu___54 = + let uu___55 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "clear" @@ -384,8 +384,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.clear FStar_Tactics_V2_Basic.clear in - let uu___57 = - let uu___58 = + let uu___56 = + let uu___57 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "rewrite" @@ -395,21 +395,21 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.rewrite FStar_Tactics_V2_Basic.rewrite in - let uu___59 = - let uu___60 = + let uu___58 = + let uu___59 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "grewrite" - uu___2 - uu___2 + uu___0 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.grewrite FStar_Tactics_V2_Basic.grewrite in - let uu___61 = - let uu___62 = + let uu___60 = + let uu___61 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "refine_intro" @@ -419,15 +419,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.refine_intro FStar_Tactics_V2_Basic.refine_intro in - let uu___63 = - let uu___64 + let uu___62 = + let uu___63 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "t_exact" FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -435,9 +435,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_exact FStar_Tactics_V2_Basic.t_exact in - let uu___65 + let uu___64 = - let uu___66 + let uu___65 = FStar_Tactics_InterpFuns.mk_tac_step_4 Prims.int_zero @@ -445,7 +445,7 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -454,16 +454,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_apply FStar_Tactics_V2_Basic.t_apply in - let uu___67 + let uu___66 = - let uu___68 + let uu___67 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "t_apply_lemma" FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_TypeChecker_NBETerm.e_bool FStar_TypeChecker_NBETerm.e_bool @@ -471,9 +471,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_apply_lemma FStar_Tactics_V2_Basic.t_apply_lemma in - let uu___69 + let uu___68 = - let uu___70 + let uu___69 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -484,52 +484,52 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.set_options FStar_Tactics_V2_Basic.set_options in - let uu___71 + let uu___70 = - let uu___72 + let uu___71 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "tcc" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 FStar_Reflection_V2_Embeddings.e_comp FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_comp FStar_Tactics_V2_Basic.tcc FStar_Tactics_V2_Basic.tcc in - let uu___73 + let uu___72 = - let uu___74 + let uu___73 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "tc" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.tc FStar_Tactics_V2_Basic.tc in - let uu___75 + let uu___74 = - let uu___76 + let uu___75 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "unshelve" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.unshelve FStar_Tactics_V2_Basic.unshelve in - let uu___77 + let uu___76 = - let uu___78 + let uu___77 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one @@ -542,16 +542,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_any FStar_Tactics_V2_Basic.unquote (fun - uu___79 + uu___78 -> fun - uu___80 + uu___79 -> FStar_Compiler_Effect.failwith "NBE unquote") in - let uu___79 + let uu___78 = - let uu___80 + let uu___79 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -562,9 +562,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.prune FStar_Tactics_V2_Basic.prune in - let uu___81 + let uu___80 = - let uu___82 + let uu___81 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -575,9 +575,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.addns FStar_Tactics_V2_Basic.addns in - let uu___83 + let uu___82 = - let uu___84 + let uu___83 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -588,9 +588,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.print FStar_Tactics_V2_Basic.print in - let uu___85 + let uu___84 = - let uu___86 + let uu___85 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -601,9 +601,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.debugging FStar_Tactics_V2_Basic.debugging in - let uu___87 + let uu___86 = - let uu___88 + let uu___87 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -614,9 +614,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.ide FStar_Tactics_V2_Basic.ide in - let uu___89 + let uu___88 = - let uu___90 + let uu___89 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -627,9 +627,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.dump FStar_Tactics_V2_Basic.dump in - let uu___91 + let uu___90 = - let uu___92 + let uu___91 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -642,9 +642,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.dump_all FStar_Tactics_V2_Basic.dump_all in - let uu___93 + let uu___92 = - let uu___94 + let uu___93 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -657,29 +657,29 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.dump_uvars_of FStar_Tactics_V2_Basic.dump_uvars_of in + let uu___94 + = let uu___95 = let uu___96 = - let uu___97 - = FStar_Tactics_Interpreter.e_tactic_1 FStar_Reflection_V2_Embeddings.e_term (FStar_Syntax_Embeddings.e_tuple2 FStar_Syntax_Embeddings.e_bool FStar_Tactics_Embedding.e_ctrl_flag) in - let uu___98 + let uu___97 = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_unit in - let uu___99 + let uu___98 = FStar_Tactics_Interpreter.e_tactic_nbe_1 FStar_Reflection_V2_NBEEmbeddings.e_term (FStar_TypeChecker_NBETerm.e_tuple2 FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_Embedding.e_ctrl_flag_nbe) in - let uu___100 + let uu___99 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_unit in @@ -687,18 +687,18 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = Prims.int_zero "ctrl_rewrite" FStar_Tactics_Embedding.e_direction + uu___96 uu___97 - uu___98 FStar_Syntax_Embeddings.e_unit FStar_Tactics_Embedding.e_direction_nbe + uu___98 uu___99 - uu___100 FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_CtrlRewrite.ctrl_rewrite FStar_Tactics_CtrlRewrite.ctrl_rewrite in - let uu___97 + let uu___96 = - let uu___98 + let uu___97 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -709,9 +709,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_trefl FStar_Tactics_V2_Basic.t_trefl in - let uu___99 + let uu___98 = - let uu___100 + let uu___99 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -722,22 +722,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.dup FStar_Tactics_V2_Basic.dup in - let uu___101 + let uu___100 = - let uu___102 + let uu___101 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "tadmit_t" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.tadmit_t FStar_Tactics_V2_Basic.tadmit_t in - let uu___103 + let uu___102 = - let uu___104 + let uu___103 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -748,14 +748,14 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.join FStar_Tactics_V2_Basic.join in - let uu___105 + let uu___104 = - let uu___106 + let uu___105 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "t_destruct" - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_list (FStar_Syntax_Embeddings.e_tuple2 FStar_Reflection_V2_Embeddings.e_fv @@ -767,9 +767,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int)) FStar_Tactics_V2_Basic.t_destruct FStar_Tactics_V2_Basic.t_destruct in - let uu___107 + let uu___106 = - let uu___108 + let uu___107 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -780,9 +780,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Tactics_V2_Basic.top_env FStar_Tactics_V2_Basic.top_env in - let uu___109 + let uu___108 = - let uu___110 + let uu___109 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -793,9 +793,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int FStar_Tactics_V2_Basic.fresh FStar_Tactics_V2_Basic.fresh in - let uu___111 + let uu___110 = - let uu___112 + let uu___111 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -806,61 +806,61 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int FStar_Tactics_V2_Basic.curms FStar_Tactics_V2_Basic.curms in - let uu___113 + let uu___112 = - let uu___114 + let uu___113 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "uvar_env" FStar_Reflection_V2_Embeddings.e_env (FStar_Syntax_Embeddings.e_option - uu___2) - uu___2 + uu___0) + uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env (FStar_TypeChecker_NBETerm.e_option FStar_Reflection_V2_NBEEmbeddings.e_attribute) FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.uvar_env FStar_Tactics_V2_Basic.uvar_env in - let uu___115 + let uu___114 = - let uu___116 + let uu___115 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "ghost_uvar_env" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.ghost_uvar_env FStar_Tactics_V2_Basic.ghost_uvar_env in - let uu___117 + let uu___116 = - let uu___118 + let uu___117 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "fresh_universe_uvar" FStar_Syntax_Embeddings.e_unit - uu___2 + uu___0 FStar_TypeChecker_NBETerm.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.fresh_universe_uvar FStar_Tactics_V2_Basic.fresh_universe_uvar in - let uu___119 + let uu___118 = - let uu___120 + let uu___119 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "unify_env" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute @@ -868,16 +868,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.unify_env FStar_Tactics_V2_Basic.unify_env in - let uu___121 + let uu___120 = - let uu___122 + let uu___121 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "unify_guard_env" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute @@ -885,16 +885,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.unify_guard_env FStar_Tactics_V2_Basic.unify_guard_env in - let uu___123 + let uu___122 = - let uu___124 + let uu___123 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "match_env" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute @@ -902,9 +902,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.match_env FStar_Tactics_V2_Basic.match_env in - let uu___125 + let uu___124 = - let uu___126 + let uu___125 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -919,22 +919,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V2_Basic.launch_process FStar_Tactics_V2_Basic.launch_process in - let uu___127 + let uu___126 = - let uu___128 + let uu___127 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "change" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_unit FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.change FStar_Tactics_V2_Basic.change in - let uu___129 + let uu___128 = - let uu___130 + let uu___129 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -945,9 +945,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Tactics_Embedding.e_guard_policy_nbe FStar_Tactics_V2_Basic.get_guard_policy FStar_Tactics_V2_Basic.get_guard_policy in - let uu___131 + let uu___130 = - let uu___132 + let uu___131 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -958,9 +958,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.set_guard_policy FStar_Tactics_V2_Basic.set_guard_policy in - let uu___133 + let uu___132 = - let uu___134 + let uu___133 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -971,9 +971,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.lax_on FStar_Tactics_V2_Basic.lax_on in - let uu___135 + let uu___134 = - let uu___136 + let uu___135 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one @@ -986,16 +986,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_any FStar_Tactics_V2_Basic.lget (fun - uu___137 + uu___136 -> fun - uu___138 + uu___137 -> FStar_Tactics_Monad.fail "sorry, `lget` does not work in NBE") in - let uu___137 + let uu___136 = - let uu___138 + let uu___137 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_one @@ -1010,19 +1010,19 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.lset (fun - uu___139 + uu___138 -> fun - uu___140 + uu___139 -> fun - uu___141 + uu___140 -> FStar_Tactics_Monad.fail "sorry, `lset` does not work in NBE") in - let uu___139 + let uu___138 = - let uu___140 + let uu___139 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_one @@ -1033,9 +1033,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.set_urgency FStar_Tactics_V2_Basic.set_urgency in - let uu___141 + let uu___140 = - let uu___142 + let uu___141 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_one @@ -1046,9 +1046,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.set_dump_on_failure FStar_Tactics_V2_Basic.set_dump_on_failure in - let uu___143 + let uu___142 = - let uu___144 + let uu___143 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_one @@ -1059,9 +1059,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_commute_applied_match FStar_Tactics_V2_Basic.t_commute_applied_match in - let uu___145 + let uu___144 = - let uu___146 + let uu___145 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1072,24 +1072,24 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.gather_explicit_guards_for_resolved_goals FStar_Tactics_V2_Basic.gather_explicit_guards_for_resolved_goals in - let uu___147 + let uu___146 = - let uu___148 + let uu___147 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "string_to_term" FStar_Reflection_V2_Embeddings.e_env FStar_Syntax_Embeddings.e_string - uu___2 + uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env FStar_TypeChecker_NBETerm.e_string FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.string_to_term FStar_Tactics_V2_Basic.string_to_term in - let uu___149 + let uu___148 = - let uu___150 + let uu___149 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -1106,22 +1106,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding) FStar_Tactics_V2_Basic.push_bv_dsenv FStar_Tactics_V2_Basic.push_bv_dsenv in - let uu___151 + let uu___150 = - let uu___152 + let uu___151 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "term_to_string" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_string FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V2_Basic.term_to_string FStar_Tactics_V2_Basic.term_to_string in - let uu___153 + let uu___152 = - let uu___154 + let uu___153 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1132,22 +1132,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V2_Basic.comp_to_string FStar_Tactics_V2_Basic.comp_to_string in - let uu___155 + let uu___154 = - let uu___156 + let uu___155 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "term_to_doc" - uu___2 + uu___0 FStar_Syntax_Embeddings.e_document FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_document FStar_Tactics_V2_Basic.term_to_doc FStar_Tactics_V2_Basic.term_to_doc in - let uu___157 + let uu___156 = - let uu___158 + let uu___157 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1158,9 +1158,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_document FStar_Tactics_V2_Basic.comp_to_doc FStar_Tactics_V2_Basic.comp_to_doc in - let uu___159 + let uu___158 = - let uu___160 + let uu___159 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1171,30 +1171,30 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V2_Basic.range_to_string FStar_Tactics_V2_Basic.range_to_string in - let uu___161 + let uu___160 = - let uu___162 + let uu___161 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "term_eq_old" - uu___2 - uu___2 + uu___0 + uu___0 FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_TypeChecker_NBETerm.e_bool FStar_Tactics_V2_Basic.term_eq_old FStar_Tactics_V2_Basic.term_eq_old in + let uu___162 + = let uu___163 = let uu___164 = - let uu___165 - = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_any in - let uu___166 + let uu___165 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_any in @@ -1203,23 +1203,23 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = "with_compat_pre_core" FStar_Syntax_Embeddings.e_any FStar_Syntax_Embeddings.e_int - uu___165 + uu___164 FStar_Syntax_Embeddings.e_any FStar_TypeChecker_NBETerm.e_any FStar_TypeChecker_NBETerm.e_int - uu___166 + uu___165 FStar_TypeChecker_NBETerm.e_any (fun - uu___167 + uu___166 -> FStar_Tactics_V2_Basic.with_compat_pre_core) (fun - uu___167 + uu___166 -> FStar_Tactics_V2_Basic.with_compat_pre_core) in - let uu___165 + let uu___164 = - let uu___166 + let uu___165 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1230,9 +1230,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_vconfig FStar_Tactics_V2_Basic.get_vconfig FStar_Tactics_V2_Basic.get_vconfig in - let uu___167 + let uu___166 = - let uu___168 + let uu___167 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1243,9 +1243,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.set_vconfig FStar_Tactics_V2_Basic.set_vconfig in - let uu___169 + let uu___168 = - let uu___170 + let uu___169 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1256,14 +1256,14 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.t_smt_sync FStar_Tactics_V2_Basic.t_smt_sync in - let uu___171 + let uu___170 = - let uu___172 + let uu___171 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero "free_uvars" - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_int) FStar_Reflection_V2_NBEEmbeddings.e_attribute @@ -1271,9 +1271,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_int) FStar_Tactics_V2_Basic.free_uvars FStar_Tactics_V2_Basic.free_uvars in - let uu___173 + let uu___172 = - let uu___174 + let uu___173 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1290,9 +1290,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string)) FStar_Tactics_V2_Basic.all_ext_options FStar_Tactics_V2_Basic.all_ext_options in - let uu___175 + let uu___174 = - let uu___176 + let uu___175 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1303,9 +1303,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string FStar_Tactics_V2_Basic.ext_getv FStar_Tactics_V2_Basic.ext_getv in - let uu___177 + let uu___176 = - let uu___178 + let uu___177 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1322,9 +1322,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_string)) FStar_Tactics_V2_Basic.ext_getns FStar_Tactics_V2_Basic.ext_getns in - let uu___179 + let uu___178 = - let uu___180 + let uu___179 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one @@ -1338,16 +1338,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = (FStar_Tactics_Embedding.e_tref_nbe ()) (fun - uu___181 + uu___180 -> FStar_Tactics_V2_Basic.alloc) (fun - uu___181 + uu___180 -> FStar_Tactics_V2_Basic.alloc) in - let uu___181 + let uu___180 = - let uu___182 + let uu___181 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_one @@ -1361,16 +1361,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = ()) FStar_TypeChecker_NBETerm.e_any (fun - uu___183 + uu___182 -> FStar_Tactics_V2_Basic.read) (fun - uu___183 + uu___182 -> FStar_Tactics_V2_Basic.read) in - let uu___183 + let uu___182 = - let uu___184 + let uu___183 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_one @@ -1386,22 +1386,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_any FStar_TypeChecker_NBETerm.e_unit (fun - uu___185 + uu___184 -> FStar_Tactics_V2_Basic.write) (fun - uu___185 + uu___184 -> FStar_Tactics_V2_Basic.write) in - let uu___185 + let uu___184 = - let uu___186 + let uu___185 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "is_non_informative" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Syntax_Embeddings.e_unit) @@ -1416,16 +1416,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_is_non_informative FStar_Tactics_V2_Basic.refl_is_non_informative in - let uu___187 + let uu___186 = - let uu___188 + let uu___187 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "check_subtyping" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Syntax_Embeddings.e_unit) @@ -1441,9 +1441,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_check_subtyping FStar_Tactics_V2_Basic.refl_check_subtyping in - let uu___189 + let uu___188 = - let uu___190 + let uu___189 = FStar_Tactics_InterpFuns.mk_tac_step_5 Prims.int_zero @@ -1451,8 +1451,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Syntax_Embeddings.e_bool FStar_Syntax_Embeddings.e_bool FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Syntax_Embeddings.e_unit) @@ -1470,20 +1470,20 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.t_refl_check_equiv FStar_Tactics_V2_Basic.t_refl_check_equiv in - let uu___191 + let uu___190 = - let uu___192 + let uu___191 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "core_compute_term_type" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option (FStar_Syntax_Embeddings.e_tuple2 FStar_Tactics_Embedding.e_tot_or_ghost - uu___2)) + uu___0)) (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_issue)) FStar_Reflection_V2_NBEEmbeddings.e_env @@ -1497,16 +1497,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_core_compute_term_type FStar_Tactics_V2_Basic.refl_core_compute_term_type in - let uu___193 + let uu___192 = - let uu___194 + let uu___193 = FStar_Tactics_InterpFuns.mk_tac_step_4 Prims.int_zero "core_check_term" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 FStar_Tactics_Embedding.e_tot_or_ghost (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option @@ -1524,16 +1524,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_core_check_term FStar_Tactics_V2_Basic.refl_core_check_term in - let uu___195 + let uu___194 = - let uu___196 + let uu___195 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "core_check_term_at_type" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Tactics_Embedding.e_tot_or_ghost) @@ -1549,22 +1549,22 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_core_check_term_at_type FStar_Tactics_V2_Basic.refl_core_check_term_at_type in - let uu___197 + let uu___196 = - let uu___198 + let uu___197 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "tc_term" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option (FStar_Syntax_Embeddings.e_tuple2 - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 FStar_Tactics_Embedding.e_tot_or_ghost - uu___2))) + uu___0))) (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_issue)) FStar_Reflection_V2_NBEEmbeddings.e_env @@ -1580,15 +1580,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_tc_term FStar_Tactics_V2_Basic.refl_tc_term in - let uu___199 + let uu___198 = - let uu___200 + let uu___199 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "universe_of" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Reflection_V2_Embeddings.e_universe) @@ -1603,15 +1603,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_universe_of FStar_Tactics_V2_Basic.refl_universe_of in - let uu___201 + let uu___200 = - let uu___202 + let uu___201 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "check_prop_validity" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Syntax_Embeddings.e_unit) @@ -1626,16 +1626,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_check_prop_validity FStar_Tactics_V2_Basic.refl_check_prop_validity in - let uu___203 + let uu___202 = - let uu___204 + let uu___203 = FStar_Tactics_InterpFuns.mk_tac_step_4 Prims.int_zero "check_match_complete" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 (FStar_Syntax_Embeddings.e_list FStar_Reflection_V2_Embeddings.e_pattern) (FStar_Syntax_Embeddings.e_option @@ -1659,24 +1659,24 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_binding)))) FStar_Tactics_V2_Basic.refl_check_match_complete FStar_Tactics_V2_Basic.refl_check_match_complete in + let uu___204 + = let uu___205 = let uu___206 = - let uu___207 - = e_ret_t (FStar_Syntax_Embeddings.e_tuple3 (FStar_Syntax_Embeddings.e_list (FStar_Syntax_Embeddings.e_tuple2 FStar_Reflection_V2_Embeddings.e_namedv (solve - uu___2))) + uu___0))) (solve - uu___2) + uu___0) (solve - uu___2)) in - let uu___208 + uu___0)) in + let uu___207 = nbe_e_ret_t (FStar_TypeChecker_NBETerm.e_tuple3 @@ -1693,29 +1693,29 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = Prims.int_zero "instantiate_implicits" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_option - uu___2) - uu___207 + uu___0) + uu___206 FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Reflection_V2_NBEEmbeddings.e_attribute (FStar_TypeChecker_NBETerm.e_option FStar_Reflection_V2_NBEEmbeddings.e_attribute) - uu___208 + uu___207 FStar_Tactics_V2_Basic.refl_instantiate_implicits FStar_Tactics_V2_Basic.refl_instantiate_implicits in + let uu___206 + = let uu___207 = let uu___208 = - let uu___209 - = e_ret_t (FStar_Syntax_Embeddings.e_list (FStar_Syntax_Embeddings.e_tuple2 FStar_Reflection_V2_Embeddings.e_namedv FStar_Reflection_V2_Embeddings.e_term)) in - let uu___210 + let uu___209 = nbe_e_ret_t (FStar_TypeChecker_NBETerm.e_list @@ -1730,9 +1730,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = (FStar_Syntax_Embeddings.e_tuple2 FStar_Reflection_V2_Embeddings.e_namedv FStar_Reflection_V2_Embeddings.e_term)) - uu___2 - uu___2 - uu___209 + uu___0 + uu___0 + uu___208 FStar_Reflection_V2_NBEEmbeddings.e_env (FStar_TypeChecker_NBETerm.e_list (FStar_TypeChecker_NBETerm.e_tuple2 @@ -1740,19 +1740,19 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_term)) FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Reflection_V2_NBEEmbeddings.e_attribute - uu___210 + uu___209 FStar_Tactics_V2_Basic.refl_try_unify FStar_Tactics_V2_Basic.refl_try_unify in - let uu___209 + let uu___208 = - let uu___210 + let uu___209 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero "maybe_relate_after_unfolding" FStar_Reflection_V2_Embeddings.e_env - uu___2 - uu___2 + uu___0 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option FStar_Tactics_Embedding.e_unfold_side) @@ -1768,18 +1768,18 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_maybe_relate_after_unfolding FStar_Tactics_V2_Basic.refl_maybe_relate_after_unfolding in - let uu___211 + let uu___210 = - let uu___212 + let uu___211 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero "maybe_unfold_head" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option - uu___2) + uu___0) (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_issue)) FStar_Reflection_V2_NBEEmbeddings.e_env @@ -1791,9 +1791,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.refl_maybe_unfold_head FStar_Tactics_V2_Basic.refl_maybe_unfold_head in - let uu___213 + let uu___212 = - let uu___214 + let uu___213 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -1801,8 +1801,8 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_Embeddings.e_env (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_norm_step) - uu___2 - uu___2 + uu___0 + uu___0 FStar_Reflection_V2_NBEEmbeddings.e_env (FStar_TypeChecker_NBETerm.e_list FStar_TypeChecker_NBETerm.e_norm_step) @@ -1810,9 +1810,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_attribute FStar_Tactics_V2_Basic.refl_norm_well_typed_term FStar_Tactics_V2_Basic.refl_norm_well_typed_term in - let uu___215 + let uu___214 = - let uu___216 + let uu___215 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -1825,9 +1825,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Tactics_V2_Basic.push_open_namespace FStar_Tactics_V2_Basic.push_open_namespace in - let uu___217 + let uu___216 = - let uu___218 + let uu___217 = FStar_Tactics_InterpFuns.mk_tac_step_3 Prims.int_zero @@ -1842,9 +1842,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_env FStar_Tactics_V2_Basic.push_module_abbrev FStar_Tactics_V2_Basic.push_module_abbrev in - let uu___219 + let uu___218 = - let uu___220 + let uu___219 = FStar_Tactics_InterpFuns.mk_tac_step_2 Prims.int_zero @@ -1865,9 +1865,9 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_Reflection_V2_NBEEmbeddings.e_fv))) FStar_Tactics_V2_Basic.resolve_name FStar_Tactics_V2_Basic.resolve_name in - let uu___221 + let uu___220 = - let uu___222 + let uu___221 = FStar_Tactics_InterpFuns.mk_tac_step_1 Prims.int_zero @@ -1880,15 +1880,15 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_unit FStar_Tactics_V2_Basic.log_issues FStar_Tactics_V2_Basic.log_issues in + let uu___222 + = let uu___223 = let uu___224 = - let uu___225 - = FStar_Tactics_Interpreter.e_tactic_thunk FStar_Syntax_Embeddings.e_unit in - let uu___226 + let uu___225 = FStar_Tactics_Interpreter.e_tactic_nbe_thunk FStar_TypeChecker_NBETerm.e_unit in @@ -1896,16 +1896,16 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = Prims.int_zero "call_subtac" FStar_Reflection_V2_Embeddings.e_env - uu___225 + uu___224 FStar_Reflection_V2_Embeddings.e_universe - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option - uu___2) + uu___0) (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_issue)) FStar_Reflection_V2_NBEEmbeddings.e_env - uu___226 + uu___225 FStar_Reflection_V2_NBEEmbeddings.e_universe FStar_Reflection_V2_NBEEmbeddings.e_attribute (FStar_TypeChecker_NBETerm.e_tuple2 @@ -1915,20 +1915,20 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.call_subtac FStar_Tactics_V2_Basic.call_subtac in - let uu___225 + let uu___224 = - let uu___226 + let uu___225 = FStar_Tactics_InterpFuns.mk_tac_step_4 Prims.int_zero "call_subtac_tm" FStar_Reflection_V2_Embeddings.e_env - uu___2 + uu___0 FStar_Reflection_V2_Embeddings.e_universe - uu___2 + uu___0 (FStar_Syntax_Embeddings.e_tuple2 (FStar_Syntax_Embeddings.e_option - uu___2) + uu___0) (FStar_Syntax_Embeddings.e_list FStar_Syntax_Embeddings.e_issue)) FStar_Reflection_V2_NBEEmbeddings.e_env @@ -1942,281 +1942,281 @@ let (ops : FStar_TypeChecker_Primops_Base.primitive_step Prims.list) = FStar_TypeChecker_NBETerm.e_issue)) FStar_Tactics_V2_Basic.call_subtac_tm FStar_Tactics_V2_Basic.call_subtac_tm in - [uu___226] in - uu___224 + [uu___225] in + uu___223 :: - uu___225 in - uu___222 + uu___224 in + uu___221 :: - uu___223 in - uu___220 + uu___222 in + uu___219 :: - uu___221 in - uu___218 + uu___220 in + uu___217 :: - uu___219 in - uu___216 + uu___218 in + uu___215 :: - uu___217 in - uu___214 + uu___216 in + uu___213 :: - uu___215 in - uu___212 + uu___214 in + uu___211 :: - uu___213 in - uu___210 - :: - uu___211 in - uu___208 + uu___212 in + uu___209 :: - uu___209 in - uu___206 + uu___210 in + uu___207 :: - uu___207 in - uu___204 + uu___208 in + uu___205 :: - uu___205 in - uu___202 + uu___206 in + uu___203 :: - uu___203 in - uu___200 + uu___204 in + uu___201 :: - uu___201 in - uu___198 + uu___202 in + uu___199 :: - uu___199 in - uu___196 + uu___200 in + uu___197 :: - uu___197 in - uu___194 + uu___198 in + uu___195 :: - uu___195 in - uu___192 + uu___196 in + uu___193 :: - uu___193 in - uu___190 + uu___194 in + uu___191 :: - uu___191 in - uu___188 + uu___192 in + uu___189 :: - uu___189 in - uu___186 + uu___190 in + uu___187 :: - uu___187 in - uu___184 + uu___188 in + uu___185 :: - uu___185 in - uu___182 + uu___186 in + uu___183 :: - uu___183 in - uu___180 + uu___184 in + uu___181 :: - uu___181 in - uu___178 + uu___182 in + uu___179 :: - uu___179 in - uu___176 + uu___180 in + uu___177 :: - uu___177 in - uu___174 + uu___178 in + uu___175 :: - uu___175 in - uu___172 + uu___176 in + uu___173 :: - uu___173 in - uu___170 + uu___174 in + uu___171 :: - uu___171 in - uu___168 + uu___172 in + uu___169 :: - uu___169 in - uu___166 + uu___170 in + uu___167 :: - uu___167 in - uu___164 + uu___168 in + uu___165 :: - uu___165 in - uu___162 + uu___166 in + uu___163 :: - uu___163 in - uu___160 + uu___164 in + uu___161 :: - uu___161 in - uu___158 + uu___162 in + uu___159 :: - uu___159 in - uu___156 + uu___160 in + uu___157 :: - uu___157 in - uu___154 + uu___158 in + uu___155 :: - uu___155 in - uu___152 + uu___156 in + uu___153 :: - uu___153 in - uu___150 + uu___154 in + uu___151 :: - uu___151 in - uu___148 + uu___152 in + uu___149 :: - uu___149 in - uu___146 + uu___150 in + uu___147 :: - uu___147 in - uu___144 + uu___148 in + uu___145 :: - uu___145 in - uu___142 + uu___146 in + uu___143 :: - uu___143 in - uu___140 + uu___144 in + uu___141 :: - uu___141 in - uu___138 + uu___142 in + uu___139 :: - uu___139 in - uu___136 + uu___140 in + uu___137 :: - uu___137 in - uu___134 + uu___138 in + uu___135 :: - uu___135 in - uu___132 + uu___136 in + uu___133 :: - uu___133 in - uu___130 + uu___134 in + uu___131 :: - uu___131 in - uu___128 + uu___132 in + uu___129 :: - uu___129 in - uu___126 + uu___130 in + uu___127 :: - uu___127 in - uu___124 + uu___128 in + uu___125 :: - uu___125 in - uu___122 + uu___126 in + uu___123 :: - uu___123 in - uu___120 + uu___124 in + uu___121 :: - uu___121 in - uu___118 + uu___122 in + uu___119 :: - uu___119 in - uu___116 + uu___120 in + uu___117 :: - uu___117 in - uu___114 + uu___118 in + uu___115 :: - uu___115 in - uu___112 + uu___116 in + uu___113 :: - uu___113 in - uu___110 + uu___114 in + uu___111 :: - uu___111 in - uu___108 + uu___112 in + uu___109 :: - uu___109 in - uu___106 + uu___110 in + uu___107 :: - uu___107 in - uu___104 + uu___108 in + uu___105 :: - uu___105 in - uu___102 + uu___106 in + uu___103 :: - uu___103 in - uu___100 + uu___104 in + uu___101 :: - uu___101 in - uu___98 + uu___102 in + uu___99 :: - uu___99 in - uu___96 + uu___100 in + uu___97 :: - uu___97 in - uu___94 + uu___98 in + uu___95 :: - uu___95 in - uu___92 + uu___96 in + uu___93 :: - uu___93 in - uu___90 + uu___94 in + uu___91 :: - uu___91 in - uu___88 + uu___92 in + uu___89 :: - uu___89 in - uu___86 + uu___90 in + uu___87 :: - uu___87 in - uu___84 + uu___88 in + uu___85 :: - uu___85 in - uu___82 + uu___86 in + uu___83 :: - uu___83 in - uu___80 + uu___84 in + uu___81 :: - uu___81 in - uu___78 + uu___82 in + uu___79 :: - uu___79 in - uu___76 - :: - uu___77 in - uu___74 - :: - uu___75 in - uu___72 - :: - uu___73 in - uu___70 - :: - uu___71 in - uu___68 - :: - uu___69 in - uu___66 - :: - uu___67 in - uu___64 :: - uu___65 in - uu___62 :: - uu___63 in - uu___60 :: - uu___61 in - uu___58 :: - uu___59 in - uu___56 :: uu___57 in - uu___54 :: uu___55 in - uu___52 :: uu___53 in - uu___50 :: uu___51 in - uu___48 :: uu___49 in - uu___46 :: uu___47 in - uu___44 :: uu___45 in - uu___42 :: uu___43 in - uu___40 :: uu___41 in - uu___38 :: uu___39 in - uu___36 :: uu___37 in - uu___34 :: uu___35 in - uu___32 :: uu___33 in - uu___30 :: uu___31 in - uu___28 :: uu___29 in - uu___26 :: uu___27 in - unseal_step :: uu___25 in - uu___23 :: uu___24 in - uu___21 :: uu___22 in - uu___19 :: uu___20 in - uu___17 :: uu___18 in - uu___15 :: uu___16 in - uu___13 :: uu___14 in - uu___11 :: uu___12 in - uu___9 :: uu___10 in - uu___7 :: uu___8 in - uu___5 :: uu___6 in - uu___3 :: uu___4 in + uu___80 in + uu___77 + :: + uu___78 in + uu___75 + :: + uu___76 in + uu___73 + :: + uu___74 in + uu___71 + :: + uu___72 in + uu___69 + :: + uu___70 in + uu___67 + :: + uu___68 in + uu___65 + :: + uu___66 in + uu___63 :: + uu___64 in + uu___61 :: + uu___62 in + uu___59 :: + uu___60 in + uu___57 :: + uu___58 in + uu___55 :: uu___56 in + uu___53 :: uu___54 in + uu___51 :: uu___52 in + uu___49 :: uu___50 in + uu___47 :: uu___48 in + uu___45 :: uu___46 in + uu___43 :: uu___44 in + uu___41 :: uu___42 in + uu___39 :: uu___40 in + uu___37 :: uu___38 in + uu___35 :: uu___36 in + uu___33 :: uu___34 in + uu___31 :: uu___32 in + uu___29 :: uu___30 in + uu___27 :: uu___28 in + uu___25 :: uu___26 in + unseal_step :: uu___24 in + uu___22 :: uu___23 in + uu___20 :: uu___21 in + uu___18 :: uu___19 in + uu___16 :: uu___17 in + uu___14 :: uu___15 in + uu___12 :: uu___13 in + uu___10 :: uu___11 in + uu___8 :: uu___9 in + uu___6 :: uu___7 in + uu___4 :: uu___5 in + uu___2 :: uu___3 in uu___ :: uu___1 \ No newline at end of file diff --git a/ocaml/fstar-lib/generated/FStar_TypeChecker_Normalize.ml b/ocaml/fstar-lib/generated/FStar_TypeChecker_Normalize.ml index bec50745032..9644d212b85 100644 --- a/ocaml/fstar-lib/generated/FStar_TypeChecker_Normalize.ml +++ b/ocaml/fstar-lib/generated/FStar_TypeChecker_Normalize.ml @@ -9215,7 +9215,7 @@ let (get_n_binders : FStar_Syntax_Syntax.term -> (FStar_Syntax_Syntax.binder Prims.list * FStar_Syntax_Syntax.comp)) = fun env1 -> fun n -> fun t -> get_n_binders' env1 [] n t -let (uu___3496 : unit) = +let (uu___0 : unit) = FStar_Compiler_Effect.op_Colon_Equals __get_n_binders get_n_binders' let (maybe_unfold_head_fv : FStar_TypeChecker_Env.env -> diff --git a/ocaml/fstar-lib/generated/FStar_TypeChecker_Rel.ml b/ocaml/fstar-lib/generated/FStar_TypeChecker_Rel.ml index 3fb482b43d9..be58fc91694 100644 --- a/ocaml/fstar-lib/generated/FStar_TypeChecker_Rel.ml +++ b/ocaml/fstar-lib/generated/FStar_TypeChecker_Rel.ml @@ -170,7 +170,7 @@ let (uu___is_DeferAny : defer_ok_t -> Prims.bool) = let (uu___is_DeferFlexFlexOnly : defer_ok_t -> Prims.bool) = fun projectee -> match projectee with | DeferFlexFlexOnly -> true | uu___ -> false -let (uu___52 : defer_ok_t FStar_Class_Show.showable) = +let (uu___0 : defer_ok_t FStar_Class_Show.showable) = { FStar_Class_Show.show = (fun uu___ -> @@ -8166,7 +8166,7 @@ and (solve_t_flex_flex : let uu___23 = let uu___24 = FStar_Class_Show.show - uu___52 + uu___0 wl.defer_ok in FStar_Compiler_Util.format1 "flex-flex: occurs\n defer_ok=%s\n" @@ -14754,7 +14754,7 @@ let (try_solve_deferred_constraints : (let uu___4 = FStar_Compiler_Effect.op_Bang dbg_Rel in if uu___4 then - let uu___5 = FStar_Class_Show.show uu___52 defer_ok in + let uu___5 = FStar_Class_Show.show uu___0 defer_ok in let uu___6 = FStar_Class_Show.show (FStar_Class_Show.printableshow diff --git a/ocaml/fstar-lib/generated/FStar_TypeChecker_Tc.ml b/ocaml/fstar-lib/generated/FStar_TypeChecker_Tc.ml index 0278024672d..3f412e2aa4d 100644 --- a/ocaml/fstar-lib/generated/FStar_TypeChecker_Tc.ml +++ b/ocaml/fstar-lib/generated/FStar_TypeChecker_Tc.ml @@ -5289,7 +5289,7 @@ let (tc_decls : ([], env) ses) in match uu___ with | (ses1, env1) -> ((FStar_Compiler_List.rev_append ses1 []), env1) -let (uu___883 : unit) = +let (uu___0 : unit) = FStar_Compiler_Effect.op_Colon_Equals tc_decls_knot (FStar_Pervasives_Native.Some tc_decls) let (snapshot_context : diff --git a/src/extraction/FStar.Extraction.ML.Code.fst b/src/extraction/FStar.Extraction.ML.Code.fst index 9a9685fd577..69b9914b416 100644 --- a/src/extraction/FStar.Extraction.ML.Code.fst +++ b/src/extraction/FStar.Extraction.ML.Code.fst @@ -314,6 +314,11 @@ let string_of_mlconstant (sctt : mlconstant) = (* -------------------------------------------------------------------- *) +let string_of_etag = function + | E_PURE -> "" + | E_ERASABLE -> "Erased" + | E_IMPURE -> "Impure" + let rec doc_of_mltype' (currentModule : mlsymbol) (outer : level) (ty : mlty) = match ty with | MLTY_Var x -> @@ -344,10 +349,10 @@ let rec doc_of_mltype' (currentModule : mlsymbol) (outer : level) (ty : mlty) = hbox (reduce1 [args; text name]) end - | MLTY_Fun (t1, _, t2) -> + | MLTY_Fun (t1, et, t2) -> let d1 = doc_of_mltype currentModule (t_prio_fun, Left ) t1 in let d2 = doc_of_mltype currentModule (t_prio_fun, Right) t2 in - maybe_paren outer t_prio_fun (hbox (reduce1 [d1; text " -> "; d2])) + maybe_paren outer t_prio_fun (hbox (reduce1 [d1; text "->"; d2])) | MLTY_Top -> if Util.codegen_fsharp() @@ -854,3 +859,11 @@ let string_of_mlty (cmod) (e:mlty) = instance showable_mlexpr : showable mlexpr = { show = string_of_mlexpr ([], ""); } + +instance showable_mlty : showable mlty = { + show = string_of_mlty ([], ""); +} + +instance showable_etag : showable e_tag = { + show = string_of_etag +} diff --git a/src/extraction/FStar.Extraction.ML.Code.fsti b/src/extraction/FStar.Extraction.ML.Code.fsti index 0ca581c2bd4..c12b92fc661 100644 --- a/src/extraction/FStar.Extraction.ML.Code.fsti +++ b/src/extraction/FStar.Extraction.ML.Code.fsti @@ -30,3 +30,5 @@ val string_of_mlty: mlpath -> mlty -> string val pretty: int -> doc -> string instance val showable_mlexpr : showable mlexpr +instance val showable_mlty : showable mlty +instance val showable_etag : showable e_tag \ No newline at end of file diff --git a/src/extraction/FStar.Extraction.ML.Syntax.fst b/src/extraction/FStar.Extraction.ML.Syntax.fst index 6ee9223330e..eefa196a3e3 100644 --- a/src/extraction/FStar.Extraction.ML.Syntax.fst +++ b/src/extraction/FStar.Extraction.ML.Syntax.fst @@ -97,16 +97,16 @@ let apply_obj_repr : mlexpr -> mlty -> mlexpr = fun x t -> let ty_param_names (tys:list ty_param) : list string = tys |> List.map (fun {ty_param_name} -> ty_param_name) -let push_unit (ts : mltyscheme) : mltyscheme = +let push_unit eff (ts : mltyscheme) : mltyscheme = let vs, ty = ts in - vs, MLTY_Fun(ml_unit_ty, E_PURE, ty) + vs, MLTY_Fun(ml_unit_ty, eff, ty) -let pop_unit (ts : mltyscheme) : mltyscheme = +let pop_unit (ts : mltyscheme) : e_tag & mltyscheme = let vs, ty = ts in match ty with - | MLTY_Fun (l, E_PURE, t) -> + | MLTY_Fun (l, eff, t) -> if l = ml_unit_ty - then vs, t + then eff, (vs, t) else failwith "unexpected: pop_unit: domain was not unit" | _ -> failwith "unexpected: pop_unit: not a function type" diff --git a/src/extraction/FStar.Extraction.ML.Syntax.fsti b/src/extraction/FStar.Extraction.ML.Syntax.fsti index d18da69e236..3f68517fdda 100644 --- a/src/extraction/FStar.Extraction.ML.Syntax.fsti +++ b/src/extraction/FStar.Extraction.ML.Syntax.fsti @@ -239,8 +239,8 @@ val apply_obj_repr : mlexpr -> mlty -> mlexpr val ty_param_names (tys:list ty_param) : list string -val push_unit (ts : mltyscheme) : mltyscheme -val pop_unit (ts : mltyscheme) : mltyscheme +val push_unit (eff:e_tag) (ts : mltyscheme) : mltyscheme +val pop_unit (ts : mltyscheme) : e_tag & mltyscheme val mltyscheme_to_string (tsc:mltyscheme) : string val mlbranch_to_string (b:mlbranch) : string diff --git a/src/extraction/FStar.Extraction.ML.Term.fst b/src/extraction/FStar.Extraction.ML.Term.fst index 46f6c663d04..ed39e93a955 100644 --- a/src/extraction/FStar.Extraction.ML.Term.fst +++ b/src/extraction/FStar.Extraction.ML.Term.fst @@ -457,14 +457,14 @@ let fresh_binders (ts:list mlty) (g:uenv) : list mlbinder & uenv = // and isn't instantiated in F* (e.g., because of first-class polymorphism) // we extract e to a type application in ML by instantiating all its // type arguments to MLTY_Erased (later, perhaps, being forced to insert magics) -let instantiate_maybe_partial (g:uenv) (e:mlexpr) (s:mltyscheme) (tyargs:list mlty) : (mlexpr & e_tag & mlty) = +let instantiate_maybe_partial (g:uenv) (e:mlexpr) (eff:e_tag) (s:mltyscheme) (tyargs:list mlty) : (mlexpr & e_tag & mlty) = let vars, t = s in let n_vars = List.length vars in let n_args = List.length tyargs in if n_args = n_vars then //easy, just make a type application node if n_args = 0 - then (e, E_PURE, t) + then (e, eff, t) else let ts = instantiate_tyscheme (vars, t) tyargs in let tapp = { @@ -472,7 +472,7 @@ let instantiate_maybe_partial (g:uenv) (e:mlexpr) (s:mltyscheme) (tyargs:list ml expr=MLE_TApp(e, tyargs); mlty=ts } in - (tapp, E_PURE, ts) + (tapp, eff, ts) else if n_args < n_vars then //We have a partial type-application in F* //So, make a full type application node in ML, @@ -499,7 +499,7 @@ let instantiate_maybe_partial (g:uenv) (e:mlexpr) (s:mltyscheme) (tyargs:list ml in let vs_ts, g = fresh_binders extra_tyargs g in let f = with_ty t <| MLE_Fun (vs_ts, tapp) in - (f, E_PURE, t) + (f, eff, t) else failwith "Impossible: instantiate_maybe_partial called with too many arguments" (* eta-expand `e` according to its type `t` *) @@ -1246,11 +1246,14 @@ let rec extract_lb_sig (g:uenv) (lbs:letbindings) : list lb_sig = //TODO: ERASE ONLY THOSE THAT ABSTRACT OVER PURE FUNCTIONS in Type(i), // NOT, e.g., (x:int -> St Type) - let tbinders, tbody = + let etag_of_comp c = effect_as_etag g (U.comp_effect_name c) in + let tbinders, eff_body, tbody = match BU.prefix_until (fun x -> not (is_type_binder g x)) bs with - | None -> bs, U.comp_result c - | Some (bs, b, rest) -> bs, U.arrow (b::rest) c in - + | None -> bs, etag_of_comp c, U.comp_result c + | Some (bs, b, rest) -> bs, E_PURE, U.arrow (b::rest) c + in + debug g (fun () -> + BU.print1 "Extract LB SIG: %s\n" (show tbody)); let n_tbinders = List.length tbinders in let lbdef = normalize_abs lbdef |> U.unmeta in let tbinders_as_ty_params env = List.map (fun ({binder_bv=x; binder_attrs}) -> { @@ -1274,7 +1277,7 @@ let rec extract_lb_sig (g:uenv) (lbs:letbindings) : list lb_sig = || not (U.is_pure_comp c) | _ -> false in let rest_args = if add_unit then (unit_binder()::rest_args) else rest_args in - let polytype = if add_unit then push_unit polytype else polytype in + let polytype = if add_unit then push_unit eff_body polytype else polytype in let body = U.abs rest_args body copt in (lbname_, f_e, (lbtyp, (targs, polytype)), add_unit, has_c_inline, body) @@ -1344,6 +1347,12 @@ and check_term_as_mlexpr (g:uenv) (e:term) (f:e_tag) (ty:mlty) : (mlexpr & mlty | E_PURE, MLTY_Erased -> ml_unit, MLTY_Erased | _ -> let ml_e, tag, t = term_as_mlexpr g e in + debug g (fun _ -> + BU.print4 "Extracted %s to %s at eff %s and type %s\n" + (show e) + (Code.string_of_mlexpr (current_module_of_uenv g) ml_e) + (Util.eff_to_string tag) + (Code.string_of_mlty (current_module_of_uenv g) t)); if eff_leq tag f then maybe_coerce e.pos g ml_e t ty, ty else match tag, f, ty with @@ -1511,19 +1520,19 @@ and term_as_mlexpr' (g:uenv) (top:term) : (mlexpr & e_tag & mlty) = | Inl _, _ -> ml_unit, E_PURE, ml_unit_ty - | Inr ({exp_b_expr=x; exp_b_tscheme=mltys}), qual -> + | Inr ({exp_b_expr=x; exp_b_tscheme=mltys; exp_b_eff=etag}), qual -> //let _ = printfn "\n (*looked up tyscheme of \n %A \n as \n %A *) \n" x s in begin match mltys with | ([], t) when t=ml_unit_ty -> - ml_unit, E_PURE, t //optimize (x:unit) to () + ml_unit, etag, t //optimize (x:unit) to () | ([], t) -> - maybe_eta_data_and_project_record g qual t x, E_PURE, t + maybe_eta_data_and_project_record g qual t x, etag, t | _ -> (* We have a first-class polymorphic value; Extract it to ML by instantiating its type arguments to MLTY_Erased *) - instantiate_maybe_partial g x mltys [] + instantiate_maybe_partial g x etag mltys [] end end @@ -1547,7 +1556,7 @@ and term_as_mlexpr' (g:uenv) (top:term) : (mlexpr & e_tag & mlty) = begin match mltys with | ([], t) when (t=ml_unit_ty) -> ml_unit, E_PURE, t //optimize (x:unit) to () | ([], t) -> maybe_eta_data_and_project_record g fv.fv_qual t x, E_PURE, t - | _ -> instantiate_maybe_partial g x mltys [] + | _ -> instantiate_maybe_partial g x E_PURE mltys [] end end @@ -1715,21 +1724,22 @@ and term_as_mlexpr' (g:uenv) (top:term) : (mlexpr & e_tag & mlty) = | Tm_name _ | Tm_fvar _ -> // debug g (fun () -> printfn "head of app is %s\n" (Print.exp_to_string head)); - let (head_ml, (vars, t)), qual = + let (head_ml, (vars, t), head_eff), qual = match lookup_term g head with | Inr exp_b, q -> debug g (fun () -> - BU.print3 "@@@looked up %s: got %s at %s\n" + BU.print4 "@@@looked up %s: got %s at %s with eff <%s>\n" (show head) (Code.string_of_mlexpr (current_module_of_uenv g) exp_b.exp_b_expr) - (Code.string_of_mlty (current_module_of_uenv g) (snd exp_b.exp_b_tscheme))); - (exp_b.exp_b_expr, exp_b.exp_b_tscheme), q + (Code.string_of_mlty (current_module_of_uenv g) (snd exp_b.exp_b_tscheme)) + (show exp_b.exp_b_eff)); + (exp_b.exp_b_expr, exp_b.exp_b_tscheme, exp_b.exp_b_eff), q | _ -> failwith "FIXME Ty" in let has_typ_apps = match args with | (a, _)::_ -> is_type g a | _ -> false in - let head_ml, head_t, args = + let head_ml, head_eff, head_t, args = (* Here, we have, say, f extracted to head_ml, with a polymorphic ML type with n type-args If, in F*, `f` is applied to exactly `n` type args, then things are easy: We extract those n arguments to ML types @@ -1755,32 +1765,33 @@ and term_as_mlexpr' (g:uenv) (top:term) : (mlexpr & e_tag & mlty) = List.map (fun (x, _) -> term_as_mlty g x) prefix, rest in - let head, t = + let head, head_eff, t = match head_ml.expr with | MLE_Name _ | MLE_Var _ -> - let head, _, t = - instantiate_maybe_partial g head_ml (vars, t) provided_type_args + let head, eff, t = + instantiate_maybe_partial g head_ml head_eff (vars, t) provided_type_args in - head, t + head, eff, t | MLE_App(head, [{expr=MLE_Const MLC_Unit}]) -> //this happens when the extraction inserted an extra //unit argument to circumvent ML's value restriction - let head, _, t = - instantiate_maybe_partial g head (vars, t) provided_type_args + let head, eff, t = + instantiate_maybe_partial g head head_eff (vars, t) provided_type_args in MLE_App(head, [ ml_unit ]) |> with_ty t, + eff, t | _ -> failwith "Impossible: Unexpected head term" in - head, t, rest + head, head_eff, t, rest in begin match args with - | [] -> maybe_eta_data_and_project_record g qual head_t head_ml, E_PURE, head_t - | _ -> extract_app_maybe_projector qual head_ml (E_PURE, head_t) args + | [] -> maybe_eta_data_and_project_record g qual head_t head_ml, head_eff, head_t + | _ -> extract_app_maybe_projector qual head_ml (head_eff, head_t) args end | _ -> @@ -1920,6 +1931,7 @@ and term_as_mlexpr' (g:uenv) (top:term) : (mlexpr & e_tag & mlty) = let check_lb env (nm_sig : mlident & lb_sig) = let (nm, (_lbname, f, (_t, (targs, polytype)), add_unit, has_c_inline, e)) = nm_sig in + debug g (fun () -> BU.print2 "Checking lb %s at %s\n" (show nm) (show (snd polytype))); let env = List.fold_left (fun env ({binder_bv=a}) -> UEnv.extend_ty env a false) env targs in let expected_t = snd polytype in let e, ty = check_term_as_mlexpr env e f expected_t in diff --git a/src/extraction/FStar.Extraction.ML.UEnv.fst b/src/extraction/FStar.Extraction.ML.UEnv.fst index 55739302496..605d37b6cb4 100644 --- a/src/extraction/FStar.Extraction.ML.UEnv.fst +++ b/src/extraction/FStar.Extraction.ML.UEnv.fst @@ -449,8 +449,8 @@ let extend_bv (g:uenv) (x:bv) (t_x:mltyscheme) (add_unit:bool) else if add_unit then with_ty MLTY_Top <| MLE_App(with_ty MLTY_Top mlx, [ml_unit]) else with_ty ml_ty mlx in - let t_x = if add_unit then pop_unit t_x else t_x in - let exp_binding = {exp_b_name=mlident; exp_b_expr=mlx; exp_b_tscheme=t_x } in + let eff, t_x = if add_unit then pop_unit t_x else E_PURE, t_x in + let exp_binding = {exp_b_name=mlident; exp_b_expr=mlx; exp_b_tscheme=t_x; exp_b_eff=eff } in let gamma = Bv(x, Inr exp_binding)::g.env_bindings in let tcenv = TypeChecker.Env.push_binders g.env_tcenv (binders_of_list [x]) in {g with env_bindings=gamma; env_mlident_map = mlident_map; env_tcenv=tcenv}, mlident, exp_binding @@ -497,8 +497,8 @@ let extend_fv (g:uenv) (x:fv) (t_x:mltyscheme) (add_unit:bool) let mlsymbol = snd mlpath in let mly = MLE_Name mlpath in let mly = if add_unit then with_ty MLTY_Top <| MLE_App(with_ty MLTY_Top mly, [ml_unit]) else with_ty ml_ty mly in - let t_x = if add_unit then pop_unit t_x else t_x in - let exp_binding = {exp_b_name=mlsymbol; exp_b_expr=mly; exp_b_tscheme=t_x } in + let eff, t_x = if add_unit then pop_unit t_x else E_PURE, t_x in + let exp_binding = {exp_b_name=mlsymbol; exp_b_expr=mly; exp_b_tscheme=t_x; exp_b_eff=eff } in let gamma = Fv(x, exp_binding)::g.env_bindings in let mlident_map = BU.psmap_add g.env_mlident_map mlsymbol "" in {g with env_bindings=gamma; env_mlident_map=mlident_map}, mlsymbol, exp_binding diff --git a/src/extraction/FStar.Extraction.ML.UEnv.fsti b/src/extraction/FStar.Extraction.ML.UEnv.fsti index 6475dcb5a87..a44db2a3738 100644 --- a/src/extraction/FStar.Extraction.ML.UEnv.fsti +++ b/src/extraction/FStar.Extraction.ML.UEnv.fsti @@ -42,7 +42,8 @@ type ty_binding = { type exp_binding = { exp_b_name:mlident; exp_b_expr:mlexpr; - exp_b_tscheme:mltyscheme + exp_b_tscheme:mltyscheme; + exp_b_eff: e_tag } type ty_or_exp_b = either ty_binding exp_binding