diff --git a/src/ocaml/plugin/generated/Pulse_Checker.ml b/src/ocaml/plugin/generated/Pulse_Checker.ml index 08fa71f6c..5cb831faa 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker.ml @@ -4,6 +4,7 @@ let (terms_to_string : (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun t -> + let uu___ = FStar_Tactics_Util.map Pulse_Syntax_Printer.term_to_string t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -13,11 +14,10 @@ let (terms_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (55)) (Prims.of_int (4)) (Prims.of_int (55)) (Prims.of_int (68))))) - (Obj.magic - (FStar_Tactics_Util.map Pulse_Syntax_Printer.term_to_string t)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_String.concat "\n" uu___)) + (fun uu___2 -> FStar_String.concat "\n" uu___1)) let (default_binder_annot : Pulse_Syntax_Base.binder) = Pulse_Syntax_Base.mk_binder_ppname Pulse_Syntax_Pure.tm_unknown Pulse_Syntax_Base.ppname_default @@ -46,6 +46,31 @@ let rec (gen_names_for_unknowns : (Obj.repr (match Pulse_Syntax_Pure.inspect_term t with | Pulse_Syntax_Pure.Tm_ExistsSL (uu___, b, body) -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + match Pulse_Syntax_Pure.inspect_term w + with + | Pulse_Syntax_Pure.Tm_Unknown -> + ((FStar_Pervasives_Native.Some + (Pulse_Typing_Env.fresh g)), + (Pulse_Syntax_Pure.tm_var + { + Pulse_Syntax_Base.nm_index + = + (Pulse_Typing_Env.fresh g); + Pulse_Syntax_Base.nm_ppname + = + (b.Pulse_Syntax_Base.binder_ppname) + }), + (Pulse_Typing_Env.push_binding g + (Pulse_Typing_Env.fresh g) + b.Pulse_Syntax_Base.binder_ppname + b.Pulse_Syntax_Base.binder_ty)) + | uu___3 -> + (FStar_Pervasives_Native.None, w, + g))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -63,30 +88,17 @@ let rec (gen_names_for_unknowns : (Prims.of_int (31)) (Prims.of_int (83)) (Prims.of_int (39))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match Pulse_Syntax_Pure.inspect_term w - with - | Pulse_Syntax_Pure.Tm_Unknown -> - ((FStar_Pervasives_Native.Some - (Pulse_Typing_Env.fresh g)), - (Pulse_Syntax_Pure.tm_var - { - Pulse_Syntax_Base.nm_index = - (Pulse_Typing_Env.fresh g); - Pulse_Syntax_Base.nm_ppname = - (b.Pulse_Syntax_Base.binder_ppname) - }), - (Pulse_Typing_Env.push_binding g - (Pulse_Typing_Env.fresh g) - b.Pulse_Syntax_Base.binder_ppname - b.Pulse_Syntax_Base.binder_ty)) - | uu___2 -> - (FStar_Pervasives_Native.None, w, g))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (xopt, w1, g1) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Syntax_Naming.open_term' + body w1 Prims.int_zero)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -105,12 +117,12 @@ let rec (gen_names_for_unknowns : (Prims.of_int (45)) (Prims.of_int (83)) (Prims.of_int (39))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Syntax_Naming.open_term' - body w1 Prims.int_zero)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun t1 -> + let uu___4 = + gen_names_for_unknowns + g1 t1 ws1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -129,13 +141,11 @@ let rec (gen_names_for_unknowns : (Prims.of_int (45)) (Prims.of_int (83)) (Prims.of_int (39))))) - (Obj.magic - (gen_names_for_unknowns - g1 t1 ws1)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 + (fun uu___6 -> + match uu___5 with | (new_names, t2, ws2) @@ -158,7 +168,7 @@ let rec (gen_names_for_unknowns : (new_names, t2, (w1 :: ws2))))))) - uu___2))) uu___1) + uu___4))) uu___2) | uu___ -> Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some @@ -173,6 +183,10 @@ let (instantiate_unknown_witnesses : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -182,15 +196,15 @@ let (instantiate_unknown_witnesses : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (87)) (Prims.of_int (28)) (Prims.of_int (113)) (Prims.of_int (10))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_IntroExists { Pulse_Syntax_Base.p5 = p; Pulse_Syntax_Base.witnesses = ws;_} -> + let uu___2 = gen_names_for_unknowns g p ws in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -203,15 +217,15 @@ let (instantiate_unknown_witnesses : (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (89)) (Prims.of_int (52)) (Prims.of_int (113)) (Prims.of_int (10))))) - (Obj.magic (gen_names_for_unknowns g p ws)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | (new_names, opened_p, new_ws) -> (match new_names with | [] -> FStar_Pervasives_Native.None - | uu___3 -> + | uu___5 -> FStar_Pervasives_Native.Some (FStar_List_Tot_Base.fold_right (fun new_name -> @@ -296,7 +310,7 @@ let (instantiate_unknown_witnesses : Pulse_Syntax_Base.effect_tag = (Pulse_Syntax_Base.as_effect_hint Pulse_Syntax_Base.STT_Ghost) - })))))) uu___) + })))))) uu___1) let rec (transform_to_unary_intro_exists : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -306,6 +320,10 @@ let rec (transform_to_unary_intro_exists : fun g -> fun t -> fun ws -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_RuntimeUtils.range_of_term t)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -317,9 +335,8 @@ let rec (transform_to_unary_intro_exists : (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (119)) (Prims.of_int (2)) (Prims.of_int (138)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_RuntimeUtils.range_of_term t)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun t_rng -> match ws with | [] -> @@ -328,6 +345,10 @@ let rec (transform_to_unary_intro_exists : (FStar_Pervasives_Native.Some t_rng) "intro exists with empty witnesses") | w::[] -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> Pulse_Syntax_Pure.inspect_term t)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -340,16 +361,15 @@ let rec (transform_to_unary_intro_exists : (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (123)) (Prims.of_int (4)) (Prims.of_int (125)) (Prims.of_int (64))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Pure.inspect_term t)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun tv -> if Pulse_Syntax_Pure.uu___is_Tm_ExistsSL tv then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> Pulse_Typing.wtag (FStar_Pervasives_Native.Some Pulse_Syntax_Base.STT_Ghost) @@ -365,10 +385,17 @@ let rec (transform_to_unary_intro_exists : (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some t_rng) "intro exists with non-existential"))) - uu___)) + uu___2)) | w::ws1 -> (match Pulse_Syntax_Pure.inspect_term t with | Pulse_Syntax_Pure.Tm_ExistsSL (u, b, body) -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Syntax_Naming.subst_term body + [FStar_Reflection_Typing.DT + (Prims.int_zero, w)])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -385,13 +412,12 @@ let rec (transform_to_unary_intro_exists : (Prims.of_int (49)) (Prims.of_int (136)) (Prims.of_int (34))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Naming.subst_term body - [FStar_Reflection_Typing.DT - (Prims.int_zero, w)])) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun body1 -> + let uu___2 = + transform_to_unary_intro_exists g body1 + ws1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -410,12 +436,10 @@ let rec (transform_to_unary_intro_exists : (Prims.of_int (6)) (Prims.of_int (136)) (Prims.of_int (34))))) - (Obj.magic - (transform_to_unary_intro_exists - g body1 ws1)) + (Obj.magic uu___2) (fun st -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___3 -> Pulse_Typing.wtag FStar_Pervasives_Native.None (Pulse_Syntax_Base.Tm_Bind @@ -438,12 +462,12 @@ let rec (transform_to_unary_intro_exists : = [w] })) - }))))) uu___)) - | uu___ -> + }))))) uu___2)) + | uu___1 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some t_rng) - "intro exists with non-existential"))) uu___) + "intro exists with non-existential"))) uu___1) let (trace : Pulse_Syntax_Base.st_term -> Pulse_Typing_Env.env -> @@ -454,6 +478,23 @@ let (trace : fun g -> fun pre -> fun rng -> + let uu___ = + let uu___1 = FStar_Tactics_V2_Builtins.ext_getv "pulse:trace" in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.fst" + (Prims.of_int (141)) (Prims.of_int (18)) + (Prims.of_int (141)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.fst" + (Prims.of_int (141)) (Prims.of_int (18)) + (Prims.of_int (141)) (Prims.of_int (48))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> uu___2 = "1")) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -465,30 +506,20 @@ let (trace : (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (142)) (Prims.of_int (2)) (Prims.of_int (161)) (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (141)) (Prims.of_int (18)) - (Prims.of_int (141)) (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (141)) (Prims.of_int (18)) - (Prims.of_int (141)) (Prims.of_int (48))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.ext_getv "pulse:trace")) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> uu___ = "1")))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun trace_opt -> if trace_opt then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + FStar_Tactics_V2_Builtins.norm_well_typed_term + (Pulse_Typing.elab_env g) + [FStar_Pervasives.unascribe; + FStar_Pervasives.primops; + FStar_Pervasives.iota] pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" @@ -499,14 +530,211 @@ let (trace : (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (147)) (Prims.of_int (94)) (Prims.of_int (160)) (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_well_typed_term - (Pulse_Typing.elab_env g) - [FStar_Pervasives.unascribe; - FStar_Pervasives.primops; - FStar_Pervasives.iota] pre)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun pre1 -> + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = + Pulse_PP.pp + Pulse_PP.printable_st_term t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (151)) + (Prims.of_int (8)) + (Prims.of_int (151)) + (Prims.of_int (14))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (150)) + (Prims.of_int (6)) + (Prims.of_int (151)) + (Prims.of_int (14))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Just before checking:") + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (150)) + (Prims.of_int (6)) + (Prims.of_int (151)) + (Prims.of_int (14))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + let uu___8 = + let uu___9 = + let uu___10 = + Pulse_Syntax_Pure.canon_slprop_print + pre1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (153)) + (Prims.of_int (22)) + (Prims.of_int (153)) + (Prims.of_int (44))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (153)) + (Prims.of_int (15)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (Obj.magic uu___10) + (fun uu___11 -> + (fun uu___11 -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___11)) + uu___11) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (153)) + (Prims.of_int (15)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (153)) + (Prims.of_int (8)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Pulse_PP.indent + uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (153)) + (Prims.of_int (8)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (152)) + (Prims.of_int (6)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "Current context:") + uu___9)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (152)) + (Prims.of_int (6)) + (Prims.of_int (153)) + (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + [uu___8])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___5 + :: uu___7)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (148)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (5))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + (Pulse_PP.text "Trace") :: + uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -525,219 +753,66 @@ let (trace : (Prims.of_int (8)) (Prims.of_int (160)) (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic uu___2) + (fun uu___3 -> + (fun msg -> + let uu___3 = + let uu___4 = + let uu___5 = + FStar_Tactics_Unseal.unseal + rng in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (150)) - (Prims.of_int (6)) - (Prims.of_int (151)) - (Prims.of_int (14))))) + (Prims.of_int (157)) + (Prims.of_int (52)) + (Prims.of_int (157)) + (Prims.of_int (66))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (151)) - (Prims.of_int (8)) - (Prims.of_int (151)) - (Prims.of_int (14))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (150)) - (Prims.of_int (6)) - (Prims.of_int (151)) - (Prims.of_int (14))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_st_term - t)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Just before checking:") - uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (152)) - (Prims.of_int (6)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (148)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (5))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (153)) - (Prims.of_int (8)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (152)) - (Prims.of_int (6)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (153)) - (Prims.of_int (15)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (153)) - (Prims.of_int (8)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (153)) - (Prims.of_int (22)) - (Prims.of_int (153)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (153)) - (Prims.of_int (15)) - (Prims.of_int (153)) - (Prims.of_int (45))))) - (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre1)) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___1)) - uu___1))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_PP.indent - uu___1)))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "Current context:") - uu___1)))) - ( - fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - [uu___1])))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - uu___ :: - uu___1)))) - uu___))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - (Pulse_PP.text "Trace") - :: uu___)))) - (fun uu___ -> - (fun msg -> + (Prims.of_int (157)) + (Prims.of_int (32)) + (Prims.of_int (157)) + (Prims.of_int (66))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Range.explode + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (157)) + (Prims.of_int (32)) + (Prims.of_int (157)) + (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (156)) + (Prims.of_int (13)) + (Prims.of_int (158)) + (Prims.of_int (38))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + match uu___5 with + | (f, l1, c1, l2, + c2) -> + FStar_Range.mk_range + f l1 + Prims.int_zero + l1 + (Prims.of_int (2)))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -756,79 +831,21 @@ let (trace : (Prims.of_int (4)) (Prims.of_int (160)) (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (157)) - (Prims.of_int (32)) - (Prims.of_int (157)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (156)) - (Prims.of_int (13)) - (Prims.of_int (158)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (157)) - (Prims.of_int (52)) - (Prims.of_int (157)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (157)) - (Prims.of_int (32)) - (Prims.of_int (157)) - (Prims.of_int (66))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - rng)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - FStar_Range.explode - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ - with - | (f, l1, c1, - l2, c2) -> - FStar_Range.mk_range - f l1 - Prims.int_zero - l1 - (Prims.of_int (2)))))) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun rng1 -> Obj.magic (Pulse_Typing_Env.info_doc_env g (FStar_Pervasives_Native.Some rng1) msg)) - uu___))) uu___))) - uu___))) + uu___4))) uu___3))) + uu___2))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) uu___) + (fun uu___2 -> ())))) uu___1) let rec (check : Pulse_Checker_Base.check_t) = fun g0 -> fun pre0 -> @@ -841,140 +858,123 @@ let rec (check : Pulse_Checker_Base.check_t) = Pulse_Checker_AssertWithBinders.check g0 pre0 () post_hint res_ppname t check else - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (176)) (Prims.of_int (6)) - (Prims.of_int (176)) (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (174)) (Prims.of_int (7)) - (Prims.of_int (315)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_Checker_Prover.elim_exists_and_pure g0 pre0 ())) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with - | FStar_Pervasives.Mkdtuple4 - (g, pre, pre_typing, k_elim_pure) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (179)) - (Prims.of_int (4)) - (Prims.of_int (179)) - (Prims.of_int (25))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (181)) - (Prims.of_int (4)) - (Prims.of_int (314)) - (Prims.of_int (52))))) - (Obj.magic - (trace t g pre t.Pulse_Syntax_Base.range1)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (181)) - (Prims.of_int (4)) - (Prims.of_int (187)) - (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (187)) - (Prims.of_int (60)) - (Prims.of_int (314)) - (Prims.of_int (52))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - g) "pulse.checker" - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (14)) - (Prims.of_int (187)) - (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (6)) - (Prims.of_int (187)) - (Prims.of_int (59))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (187)) - (Prims.of_int (16)) - (Prims.of_int (187)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (14)) - (Prims.of_int (187)) - (Prims.of_int (59))))) - (Obj.magic - (Pulse_Syntax_Printer.st_term_to_string - t)) - (fun uu___3 -> - (fun uu___3 - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (let uu___1 = + Pulse_Checker_Prover.elim_exists_and_pure g0 pre0 () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.fst" + (Prims.of_int (176)) (Prims.of_int (6)) + (Prims.of_int (176)) (Prims.of_int (59))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.fst" + (Prims.of_int (174)) (Prims.of_int (7)) + (Prims.of_int (315)) (Prims.of_int (3))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with + | FStar_Pervasives.Mkdtuple4 + (g, pre, pre_typing, k_elim_pure) -> + let uu___3 = + trace t g pre t.Pulse_Syntax_Base.range1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (179)) + (Prims.of_int (4)) + (Prims.of_int (179)) + (Prims.of_int (25))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (181)) + (Prims.of_int (4)) + (Prims.of_int (314)) + (Prims.of_int (52))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env g) + "pulse.checker" + then + Obj.magic + (Obj.repr + (let uu___6 = + let uu___7 = + Pulse_Syntax_Printer.st_term_to_string + t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (187)) + (Prims.of_int (16)) + (Prims.of_int (187)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (182)) + (Prims.of_int (14)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + Pulse_Syntax_Printer.term_to_string + pre in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (14)) - (Prims.of_int (187)) - (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (186)) + (Prims.of_int (16)) + (Prims.of_int (186)) + (Prims.of_int (57))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" (Prims.of_int (182)) (Prims.of_int (14)) (Prims.of_int (187)) (Prims.of_int (59))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___10) + (fun uu___11 + -> + (fun + uu___11 + -> + let uu___12 + = + let uu___13 + = + Pulse_Typing_Env.env_to_string + g in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (186)) + (Prims.of_int (185)) (Prims.of_int (16)) - (Prims.of_int (186)) - (Prims.of_int (57))))) + (Prims.of_int (185)) + (Prims.of_int (50))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -984,22 +984,29 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (187)) (Prims.of_int (59))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - pre)) + uu___13) (fun - uu___4 -> + uu___14 + -> (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14 + -> + let uu___15 + = + let uu___16 + = + Pulse_RuntimeUtils.print_context + (Pulse_Typing_Env.get_context + g) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (14)) - (Prims.of_int (187)) - (Prims.of_int (59))))) + (Prims.of_int (184)) + (Prims.of_int (16)) + (Prims.of_int (184)) + (Prims.of_int (50))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1009,30 +1016,69 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (187)) (Prims.of_int (59))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + (fun + uu___17 + -> + let uu___18 + = + let uu___19 + = + FStar_Tactics_V2_Builtins.range_to_string + t.Pulse_Syntax_Base.range1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (185)) + (Prims.of_int (183)) (Prims.of_int (16)) - (Prims.of_int (185)) - (Prims.of_int (50))))) + (Prims.of_int (183)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (182)) - (Prims.of_int (14)) - (Prims.of_int (187)) - (Prims.of_int (59))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Typing_Env.env_to_string - g)) + uu___19) (fun - uu___5 -> + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___21 + -> + fun x -> + fun x1 -> + fun x2 -> + fun x3 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "At " + (Prims.strcat + uu___20 + "{\nerr context:\n>")) + (Prims.strcat + x + "\n\n{\n\tenv=")) + (Prims.strcat + x1 + "\ncontext:\n")) + (Prims.strcat + x2 + ",\n\nst_term: ")) + (Prims.strcat + x3 "}}\n"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1052,15 +1098,27 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (187)) (Prims.of_int (59))))) (Obj.magic + uu___18) + (fun + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + uu___19 + uu___17)))) + uu___17) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (184)) - (Prims.of_int (16)) - (Prims.of_int (184)) - (Prims.of_int (50))))) + (Prims.of_int (182)) + (Prims.of_int (14)) + (Prims.of_int (187)) + (Prims.of_int (59))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1070,13 +1128,17 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (187)) (Prims.of_int (59))))) (Obj.magic - (Pulse_RuntimeUtils.print_context - (Pulse_Typing_Env.get_context - g))) + uu___15) (fun - uu___6 -> + uu___16 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___17 + -> + uu___16 + uu___14)))) + uu___14) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1096,198 +1158,178 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (187)) (Prims.of_int (59))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (183)) - (Prims.of_int (16)) - (Prims.of_int (183)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - t.Pulse_Syntax_Base.range1)) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - fun x -> - fun x1 -> - fun x2 -> - fun x3 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "At " - (Prims.strcat - uu___7 - "{\nerr context:\n>")) - (Prims.strcat - x - "\n\n{\n\tenv=")) - (Prims.strcat - x1 - "\ncontext:\n")) - (Prims.strcat - x2 - ",\n\nst_term: ")) - (Prims.strcat - x3 "}}\n"))))) + uu___12) (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___7 - uu___6)))) - uu___6))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___6 - uu___5)))) - uu___5))) - (fun - uu___5 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> + uu___14 + -> + uu___13 + uu___11)))) + uu___11) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (182)) + (Prims.of_int (14)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (182)) + (Prims.of_int (14)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (Obj.magic + uu___9) + (fun uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - uu___4 - uu___3)))) - uu___3))) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_V2_Builtins.print - uu___3)) - uu___3))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> ())))) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11 + -> + uu___10 + uu___8)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (182)) + (Prims.of_int (14)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (182)) + (Prims.of_int (6)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + Obj.magic + (FStar_Tactics_V2_Builtins.print + uu___7)) + uu___7))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (181)) + (Prims.of_int (4)) + (Prims.of_int (187)) + (Prims.of_int (59))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (187)) + (Prims.of_int (60)) + (Prims.of_int (314)) + (Prims.of_int (52))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + Pulse_Checker_Pure.push_context + (Pulse_Syntax_Printer.tag_of_st_term + t) + t.Pulse_Syntax_Base.range1 + g)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (189)) - (Prims.of_int (46)) - (Prims.of_int (310)) - (Prims.of_int (50))))) + (Prims.of_int (190)) + (Prims.of_int (14)) + (Prims.of_int (190)) + (Prims.of_int (57))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (311)) + (Prims.of_int (191)) (Prims.of_int (6)) - (Prims.of_int (314)) - (Prims.of_int (52))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (190)) - (Prims.of_int (14)) - (Prims.of_int (190)) - (Prims.of_int (57))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (191)) - (Prims.of_int (6)) - (Prims.of_int (310)) - (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - Pulse_Checker_Pure.push_context - (Pulse_Syntax_Printer.tag_of_st_term - t) - t.Pulse_Syntax_Base.range1 - g)) - (fun uu___4 -> - (fun g1 -> - match - t.Pulse_Syntax_Base.term1 - with - | - Pulse_Syntax_Base.Tm_Return - uu___4 -> - Obj.magic - (Obj.repr + (Prims.of_int (310)) + (Prims.of_int (50))))) + (Obj.magic uu___8) + (fun uu___9 -> + (fun g1 -> + match t.Pulse_Syntax_Base.term1 + with + | Pulse_Syntax_Base.Tm_Return + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Return.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_Abs - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_Abs + uu___9 -> + Obj.magic + (Obj.repr (FStar_Tactics_V2_Derived.fail "Tm_Abs check should not have been called in the checker")) - | - Pulse_Syntax_Base.Tm_STApp - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_STApp + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_STApp.check g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_ElimExists - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_ElimExists + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Exists.check_elim_exists g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_IntroExists - { - Pulse_Syntax_Base.p5 + | Pulse_Syntax_Base.Tm_IntroExists + { + Pulse_Syntax_Base.p5 = p; - Pulse_Syntax_Base.witnesses + Pulse_Syntax_Base.witnesses = witnesses;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind + -> + Obj.magic + (Obj.repr + (let uu___9 + = + instantiate_unknown_witnesses + g1 t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1305,13 +1347,14 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (221)) (Prims.of_int (58))))) (Obj.magic - (instantiate_unknown_witnesses - g1 t)) + uu___9) (fun - uu___4 -> + uu___10 + -> (fun - uu___4 -> - match uu___4 + uu___10 + -> + match uu___10 with | FStar_Pervasives_Native.Some @@ -1336,7 +1379,7 @@ let rec (check : Pulse_Checker_Base.check_t) = (t.Pulse_Syntax_Base.range1)) "intro exists with empty witnesses") | - uu___5::[] + uu___11::[] -> Obj.magic (Pulse_Checker_Exists.check_intro_exists @@ -1346,7 +1389,13 @@ let rec (check : Pulse_Checker_Base.check_t) = t FStar_Pervasives_Native.None) | - uu___5 -> + uu___11 + -> + let uu___12 + = + transform_to_unary_intro_exists + g1 p + witnesses in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1366,11 +1415,10 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (221)) (Prims.of_int (57))))) (Obj.magic - (transform_to_unary_intro_exists - g1 p - witnesses)) + uu___12) (fun - uu___6 -> + uu___13 + -> (fun t1 -> Obj.magic @@ -1379,60 +1427,42 @@ let rec (check : Pulse_Checker_Base.check_t) = post_hint res_ppname t1)) - uu___6)))) - uu___4))) - | - Pulse_Syntax_Base.Tm_Bind - uu___4 -> - Obj.magic - (Obj.repr + uu___13)))) + uu___10))) + | Pulse_Syntax_Base.Tm_Bind + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Bind.check_bind g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_TotBind - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_TotBind + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Bind.check_tot_bind g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_If - { - Pulse_Syntax_Base.b1 + | Pulse_Syntax_Base.Tm_If + { + Pulse_Syntax_Base.b1 = b; - Pulse_Syntax_Base.then_ + Pulse_Syntax_Base.then_ = e1; - Pulse_Syntax_Base.else_ + Pulse_Syntax_Base.else_ = e2; - Pulse_Syntax_Base.post1 + Pulse_Syntax_Base.post1 = post_if;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (230)) - (Prims.of_int (10)) - (Prims.of_int (248)) - (Prims.of_int (97))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (249)) - (Prims.of_int (10)) - (Prims.of_int (252)) - (Prims.of_int (31))))) - (match + -> + Obj.magic + (Obj.repr + (let uu___9 + = + match (post_if, post_hint) with @@ -1444,8 +1474,8 @@ let rec (check : Pulse_Checker_Base.check_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - p))) + uu___10 + -> p))) | (FStar_Pervasives_Native.Some p, @@ -1465,48 +1495,78 @@ let rec (check : Pulse_Checker_Base.check_t) = q) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (238)) - (Prims.of_int (14)) (Prims.of_int (243)) - (Prims.of_int (39))))) + (Prims.of_int (18)) + (Prims.of_int (243)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (237)) - (Prims.of_int (12)) + (Prims.of_int (238)) + (Prims.of_int (14)) (Prims.of_int (243)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.term_to_string + q.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (243)) + (Prims.of_int (242)) (Prims.of_int (18)) - (Prims.of_int (243)) - (Prims.of_int (38))))) + (Prims.of_int (242)) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (238)) - (Prims.of_int (14)) - (Prims.of_int (243)) - (Prims.of_int (39))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - p)) + uu___14) (fun - uu___4 -> + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___16 + -> + fun x -> + Prims.strcat + (Prims.strcat + "Multiple annotated postconditions---remove one of them.\nThe context expects the postcondition " + (Prims.strcat + uu___15 + ",\nbut this conditional was annotated with postcondition ")) + (Prims.strcat + x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1526,62 +1586,52 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (243)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + uu___14 + uu___12)))) + uu___12) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (242)) - (Prims.of_int (18)) - (Prims.of_int (242)) - (Prims.of_int (60))))) + (Prims.of_int (238)) + (Prims.of_int (14)) + (Prims.of_int (243)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.fst" + (Prims.of_int (237)) + (Prims.of_int (12)) + (Prims.of_int (243)) + (Prims.of_int (39))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - q.Pulse_Typing.post)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - fun x -> - Prims.strcat - (Prims.strcat - "Multiple annotated postconditions---remove one of them.\nThe context expects the postcondition " - (Prims.strcat - uu___5 - ",\nbut this conditional was annotated with postcondition ")) - (Prims.strcat - x ""))))) + uu___10) (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___4)) - uu___4))) + uu___11)) + uu___11))) | - (uu___4, - uu___5) + (uu___10, + uu___11) -> Obj.magic (Obj.repr @@ -1589,11 +1639,39 @@ let rec (check : Pulse_Checker_Base.check_t) = g1 (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - "Pulse cannot yet infer a postcondition for a non-tail conditional statement;\nEither annotate this `if` with `returns` clause; or rewrite your code to use a tail conditional"))) + "Pulse cannot yet infer a postcondition for a non-tail conditional statement;\nEither annotate this `if` with `returns` clause; or rewrite your code to use a tail conditional")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (230)) + (Prims.of_int (10)) + (Prims.of_int (248)) + (Prims.of_int (97))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (249)) + (Prims.of_int (10)) + (Prims.of_int (252)) + (Prims.of_int (31))))) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun post -> + let uu___10 + = + Pulse_Checker_If.check + g1 pre () + post + res_ppname + b e1 e2 + check in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1613,18 +1691,15 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (252)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Checker_If.check - g1 pre () - post - res_ppname - b e1 e2 - check)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | FStar_Pervasives.Mkdtuple5 @@ -1636,48 +1711,31 @@ let rec (check : Pulse_Checker_Base.check_t) = (x, t1, pre', g11, k))))) - uu___4))) - | - Pulse_Syntax_Base.Tm_While - uu___4 -> - Obj.magic - (Obj.repr + uu___10))) + | Pulse_Syntax_Base.Tm_While + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_While.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_Match - { - Pulse_Syntax_Base.sc + | Pulse_Syntax_Base.Tm_Match + { + Pulse_Syntax_Base.sc = sc; - Pulse_Syntax_Base.returns_ + Pulse_Syntax_Base.returns_ = post_match; - Pulse_Syntax_Base.brs + Pulse_Syntax_Base.brs = brs;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (260)) - (Prims.of_int (10)) - (Prims.of_int (277)) - (Prims.of_int (97))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (278)) - (Prims.of_int (10)) - (Prims.of_int (281)) - (Prims.of_int (32))))) - (match + -> + Obj.magic + (Obj.repr + (let uu___9 + = + match (post_match, post_hint) with @@ -1689,8 +1747,8 @@ let rec (check : Pulse_Checker_Base.check_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - p))) + uu___10 + -> p))) | (FStar_Pervasives_Native.Some p, @@ -1710,48 +1768,78 @@ let rec (check : Pulse_Checker_Base.check_t) = q) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (267)) - (Prims.of_int (14)) (Prims.of_int (272)) - (Prims.of_int (39))))) + (Prims.of_int (18)) + (Prims.of_int (272)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (266)) - (Prims.of_int (12)) + (Prims.of_int (267)) + (Prims.of_int (14)) (Prims.of_int (272)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.term_to_string + q.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (272)) + (Prims.of_int (271)) (Prims.of_int (18)) - (Prims.of_int (272)) - (Prims.of_int (38))))) + (Prims.of_int (271)) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.fst" - (Prims.of_int (267)) - (Prims.of_int (14)) - (Prims.of_int (272)) - (Prims.of_int (39))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - p)) + uu___14) (fun - uu___4 -> + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___16 + -> + fun x -> + Prims.strcat + (Prims.strcat + "Multiple annotated postconditions---remove one of them.\nThe context expects the postcondition " + (Prims.strcat + uu___15 + ",\nbut this conditional was annotated with postcondition ")) + (Prims.strcat + x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1771,62 +1859,52 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (272)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + uu___14 + uu___12)))) + uu___12) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.fst" - (Prims.of_int (271)) - (Prims.of_int (18)) - (Prims.of_int (271)) - (Prims.of_int (60))))) + (Prims.of_int (267)) + (Prims.of_int (14)) + (Prims.of_int (272)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.fst" + (Prims.of_int (266)) + (Prims.of_int (12)) + (Prims.of_int (272)) + (Prims.of_int (39))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - q.Pulse_Typing.post)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac + uu___10) (fun - uu___6 -> - fun x -> - Prims.strcat - (Prims.strcat - "Multiple annotated postconditions---remove one of them.\nThe context expects the postcondition " - (Prims.strcat - uu___5 - ",\nbut this conditional was annotated with postcondition ")) - (Prims.strcat - x ""))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___4)) - uu___4))) + uu___11)) + uu___11))) | - (uu___4, - uu___5) + (uu___10, + uu___11) -> Obj.magic (Obj.repr @@ -1834,11 +1912,39 @@ let rec (check : Pulse_Checker_Base.check_t) = g1 (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - "Pulse cannot yet infer a postcondition for a non-tail conditional statement;\nEither annotate this `if` with `returns` clause; or rewrite your code to use a tail conditional"))) + "Pulse cannot yet infer a postcondition for a non-tail conditional statement;\nEither annotate this `if` with `returns` clause; or rewrite your code to use a tail conditional")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (260)) + (Prims.of_int (10)) + (Prims.of_int (277)) + (Prims.of_int (97))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (278)) + (Prims.of_int (10)) + (Prims.of_int (281)) + (Prims.of_int (32))))) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun post -> + let uu___10 + = + Pulse_Checker_Match.check + g1 pre () + post + res_ppname + sc brs + check in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1858,18 +1964,15 @@ let rec (check : Pulse_Checker_Base.check_t) = (Prims.of_int (281)) (Prims.of_int (32))))) (Obj.magic - (Pulse_Checker_Match.check - g1 pre () - post - res_ppname - sc brs - check)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | FStar_Pervasives.Mkdtuple5 @@ -1881,114 +1984,122 @@ let rec (check : Pulse_Checker_Base.check_t) = (x, ty, pre', g11, k))))) - uu___4))) - | - Pulse_Syntax_Base.Tm_ProofHintWithBinders - uu___4 -> - Obj.magic - (Obj.repr + uu___10))) + | Pulse_Syntax_Base.Tm_ProofHintWithBinders + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_AssertWithBinders.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_WithLocal - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_WithLocal + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_WithLocal.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_WithLocalArray - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_WithLocalArray + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_WithLocalArray.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_Par - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_Par + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Par.check g1 pre () post_hint res_ppname t check)) - | - Pulse_Syntax_Base.Tm_IntroPure - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_IntroPure + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_IntroPure.check g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_Admit - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_Admit + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Admit.check g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_Unreachable - -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_Unreachable + -> + Obj.magic + (Obj.repr (Pulse_Checker_Unreachable.check g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_Rewrite - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_Rewrite + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_Rewrite.check g1 pre () post_hint res_ppname t)) - | - Pulse_Syntax_Base.Tm_WithInv - uu___4 -> - Obj.magic - (Obj.repr + | Pulse_Syntax_Base.Tm_WithInv + uu___9 -> + Obj.magic + (Obj.repr (Pulse_Checker_WithInv.check g1 pre () post_hint res_ppname t check)) - | - uu___4 -> - Obj.magic - (Obj.repr + | uu___9 -> + Obj.magic + (Obj.repr (FStar_Tactics_V2_Derived.fail "Checker form not implemented"))) - uu___4))) - (fun r -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - match r with - | FStar_Pervasives.Mkdtuple5 - (x, g1, + uu___9) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (189)) + (Prims.of_int (46)) + (Prims.of_int (310)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.fst" + (Prims.of_int (311)) + (Prims.of_int (6)) + (Prims.of_int (314)) + (Prims.of_int (52))))) + (Obj.magic uu___7) + (fun r -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + match r with + | FStar_Pervasives.Mkdtuple5 + (x, g1, t1, pre', - k) - -> - FStar_Pervasives.Mkdtuple5 + k) -> + FStar_Pervasives.Mkdtuple5 (x, g1, t1, pre', (Pulse_Checker_Base.k_elab_trans @@ -1998,4 +2109,4 @@ let rec (check : Pulse_Checker_Base.check_t) = pre') k_elim_pure k)))))) - uu___3))) uu___2))) uu___1) \ No newline at end of file + uu___6))) uu___4))) uu___2)) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Abs.ml b/src/ocaml/plugin/generated/Pulse_Checker_Abs.ml index d9dd75675..7cd0471dc 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Abs.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Abs.ml @@ -14,7 +14,8 @@ let (debug_abs : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = s () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" @@ -25,11 +26,11 @@ let (debug_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (40)) (Prims.of_int (7)) (Prims.of_int (40)) (Prims.of_int (21))))) - (Obj.magic (s ())) - (fun uu___ -> - (fun uu___ -> - Obj.magic (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + Obj.magic (FStar_Tactics_V2_Builtins.print uu___1)) + uu___1))) else Obj.magic (Obj.repr @@ -43,6 +44,10 @@ let rec (arrow_of_abs : = fun env -> fun prog -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> prog.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -53,17 +58,19 @@ let rec (arrow_of_abs : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (46)) (Prims.of_int (3)) (Prims.of_int (101)) - (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> prog.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (5))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_Abs { Pulse_Syntax_Base.b = b; Pulse_Syntax_Base.q = q; Pulse_Syntax_Base.ascription = ascription; Pulse_Syntax_Base.body = body;_} -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> Pulse_Typing_Env.fresh env)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -76,10 +83,15 @@ let rec (arrow_of_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (47)) (Prims.of_int (24)) (Prims.of_int (101)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Pulse_Typing_Env.fresh env)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun x -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + ((b.Pulse_Syntax_Base.binder_ppname), + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -98,12 +110,18 @@ let rec (arrow_of_abs : (Prims.of_int (34)) (Prims.of_int (101)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ((b.Pulse_Syntax_Base.binder_ppname), - x))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun px -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Typing_Env.push_binding + env x + (FStar_Pervasives_Native.fst + px) + b.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -122,15 +140,15 @@ let rec (arrow_of_abs : (Prims.of_int (56)) (Prims.of_int (101)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_binding - env x - (FStar_Pervasives_Native.fst - px) - b.Pulse_Syntax_Base.binder_ty)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun env1 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Syntax_Naming.open_st_term_nv + body px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -149,12 +167,15 @@ let rec (arrow_of_abs : (Prims.of_int (41)) (Prims.of_int (101)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Naming.open_st_term_nv - body px)) - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun body1 -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + ascription.Pulse_Syntax_Base.annotated)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -173,14 +194,32 @@ let rec (arrow_of_abs : (Prims.of_int (4)) (Prims.of_int (101)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ascription.Pulse_Syntax_Base.annotated)) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun annot -> + let uu___7 + = + if + FStar_Pervasives_Native.uu___is_Some + ascription.Pulse_Syntax_Base.elaborated + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail + env1 + (FStar_Pervasives_Native.Some + (prog.Pulse_Syntax_Base.range1)) + "Unexpected elaborated annotation on function")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -199,28 +238,12 @@ let rec (arrow_of_abs : (Prims.of_int (4)) (Prims.of_int (101)) (Prims.of_int (5))))) - (if - FStar_Pervasives_Native.uu___is_Some - ascription.Pulse_Syntax_Base.elaborated - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - env1 - (FStar_Pervasives_Native.Some - (prog.Pulse_Syntax_Base.range1)) - "Unexpected elaborated annotation on function")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - ())))) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> + uu___8 -> if Pulse_Syntax_Base.uu___is_Tm_Abs body1.Pulse_Syntax_Base.term1 @@ -232,6 +255,11 @@ let rec (arrow_of_abs : | FStar_Pervasives_Native.None -> + let uu___9 + = + arrow_of_abs + env1 + body1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -250,15 +278,15 @@ let rec (arrow_of_abs : (Prims.of_int (64)) (Prims.of_int (16))))) (Obj.magic - (arrow_of_abs - env1 - body1)) + uu___9) (fun - uu___2 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - match uu___2 + uu___11 + -> + match uu___10 with | (arr, @@ -295,6 +323,17 @@ let rec (arrow_of_abs : | FStar_Pervasives_Native.Some c -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Syntax_Naming.open_comp_with + c + (Pulse_Syntax_Pure.term_of_nvar + px))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -312,15 +351,11 @@ let rec (arrow_of_abs : (Prims.of_int (8)) (Prims.of_int (86)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Naming.open_comp_with - c - (Pulse_Syntax_Pure.term_of_nvar - px))) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun c1 -> match c1 @@ -332,7 +367,8 @@ let rec (arrow_of_abs : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___10 + -> ((Pulse_Syntax_Pure.tm_arrow b q (Pulse_Syntax_Base.C_Tot @@ -375,28 +411,17 @@ let rec (arrow_of_abs : (prog.Pulse_Syntax_Base.effect_tag) })))) | - uu___2 -> + uu___10 + -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (85)) - (Prims.of_int (12)) - (Prims.of_int (86)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (82)) - (Prims.of_int (10)) - (Prims.of_int (86)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.comp_to_string + c1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -414,29 +439,52 @@ let rec (arrow_of_abs : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - c1)) + uu___12) (fun - uu___3 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___14 + -> Prims.strcat "Unexpected type of abstraction: " (Prims.strcat - uu___3 ""))))) + uu___13 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (85)) + (Prims.of_int (12)) + (Prims.of_int (86)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (82)) + (Prims.of_int (10)) + (Prims.of_int (86)) + (Prims.of_int (37))))) + (Obj.magic + uu___11) (fun - uu___3 -> + uu___12 + -> (fun - uu___3 -> + uu___12 + -> Obj.magic (Pulse_Typing_Env.fail env1 (FStar_Pervasives_Native.Some (prog.Pulse_Syntax_Base.range1)) - uu___3)) - uu___3)))) - uu___2))) + uu___12)) + uu___12)))) + uu___10))) else Obj.magic (Obj.repr @@ -457,7 +505,8 @@ let rec (arrow_of_abs : Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> ((Pulse_Syntax_Pure.tm_arrow b q c), { @@ -484,10 +533,10 @@ let rec (arrow_of_abs : = (prog.Pulse_Syntax_Base.effect_tag) })))))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___1))) uu___1))) uu___) + uu___8))) + uu___7))) + uu___6))) uu___5))) + uu___4))) uu___3))) uu___1) let (qualifier_compat : Pulse_Typing_Env.env -> Pulse_Syntax_Base.range -> @@ -546,6 +595,66 @@ let rec (rebuild_abs : fun g -> fun t -> fun annot -> + let uu___ = + debug_abs g + (fun uu___1 -> + let uu___2 = FStar_Tactics_V2_Builtins.term_to_string annot in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Abs.fst" + (Prims.of_int (116)) (Prims.of_int (16)) + (Prims.of_int (116)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Abs.fst" + (Prims.of_int (114)) (Prims.of_int (26)) + (Prims.of_int (116)) (Prims.of_int (40))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + Pulse_Syntax_Printer.st_term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (115)) (Prims.of_int (16)) + (Prims.of_int (115)) (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" + (Prims.of_int (122)) (Prims.of_int (8)) + (Prims.of_int (124)) (Prims.of_int (44))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + fun x -> + Prims.strcat + (Prims.strcat "rebuild_abs\n\t" + (Prims.strcat uu___6 "\n\t")) + (Prims.strcat x "\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (114)) (Prims.of_int (26)) + (Prims.of_int (116)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (114)) (Prims.of_int (26)) + (Prims.of_int (116)) (Prims.of_int (40))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) uu___3)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -557,78 +666,9 @@ let rec (rebuild_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (117)) (Prims.of_int (4)) (Prims.of_int (166)) (Prims.of_int (47))))) - (Obj.magic - (debug_abs g - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (116)) (Prims.of_int (16)) - (Prims.of_int (116)) (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (114)) (Prims.of_int (26)) - (Prims.of_int (116)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string annot)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (114)) - (Prims.of_int (26)) - (Prims.of_int (116)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (114)) - (Prims.of_int (26)) - (Prims.of_int (116)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (115)) - (Prims.of_int (16)) - (Prims.of_int (115)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.st_term_to_string - t)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat - "rebuild_abs\n\t" - (Prims.strcat uu___2 - "\n\t")) - (Prims.strcat x "\n"))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) uu___1)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> match ((t.Pulse_Syntax_Base.term1), (FStar_Reflection_V2_Builtins.inspect_ln annot)) with @@ -637,6 +677,11 @@ let rec (rebuild_abs : Pulse_Syntax_Base.ascription = asc; Pulse_Syntax_Base.body = body;_}, FStar_Reflection_V2_Data.Tv_Arrow (b', c')) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + FStar_Reflection_V2_Builtins.inspect_binder b')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -649,11 +694,13 @@ let rec (rebuild_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (120)) (Prims.of_int (6)) (Prims.of_int (160)) (Prims.of_int (41))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Reflection_V2_Builtins.inspect_binder b')) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun b'1 -> + let uu___3 = + qualifier_compat g + (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.range + q b'1.FStar_Reflection_V2_Data.qual in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -672,12 +719,14 @@ let rec (rebuild_abs : (Prims.of_int (57)) (Prims.of_int (160)) (Prims.of_int (41))))) - (Obj.magic - (qualifier_compat g - (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.range - q b'1.FStar_Reflection_V2_Data.qual)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + b'1.FStar_Reflection_V2_Data.sort2)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -696,11 +745,15 @@ let rec (rebuild_abs : (Prims.of_int (25)) (Prims.of_int (160)) (Prims.of_int (41))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - b'1.FStar_Reflection_V2_Data.sort2)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun ty -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Reflection_V2_Builtins.inspect_comp + c')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -719,11 +772,8 @@ let rec (rebuild_abs : (Prims.of_int (6)) (Prims.of_int (160)) (Prims.of_int (41))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Reflection_V2_Builtins.inspect_comp - c')) - (fun uu___2 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun comp -> match comp with @@ -736,7 +786,17 @@ let rec (rebuild_abs : body.Pulse_Syntax_Base.term1 then Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + Pulse_Syntax_Base.mk_binder_with_attrs + ty + b.Pulse_Syntax_Base.binder_ppname + b.Pulse_Syntax_Base.binder_attrs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -753,17 +813,17 @@ let rec (rebuild_abs : (Prims.of_int (75)) (Prims.of_int (130)) (Prims.of_int (64))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Base.mk_binder_with_attrs - ty - b.Pulse_Syntax_Base.binder_ppname - b.Pulse_Syntax_Base.binder_attrs)) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun b1 -> + let uu___8 + = + rebuild_abs + g body + res_ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -783,14 +843,12 @@ let rec (rebuild_abs : (Prims.of_int (130)) (Prims.of_int (63))))) (Obj.magic - (rebuild_abs - g body - res_ty)) + uu___8) (fun body1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> { Pulse_Syntax_Base.term1 = @@ -820,7 +878,7 @@ let rec (rebuild_abs : = (t.Pulse_Syntax_Base.effect_tag) })))) - uu___2)) + uu___8)) else Obj.repr (match @@ -831,25 +889,13 @@ let rec (rebuild_abs : FStar_Pervasives_Native.None -> Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (136)) - (Prims.of_int (14)) - (Prims.of_int (137)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (135)) - (Prims.of_int (12)) - (Prims.of_int (137)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + FStar_Tactics_V2_Builtins.term_to_string + res_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -867,35 +913,60 @@ let rec (rebuild_abs : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - res_ty)) + uu___9) (fun - uu___3 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___11 + -> Prims.strcat "Expected a computation type; got " (Prims.strcat - uu___3 ""))))) + uu___10 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (136)) + (Prims.of_int (14)) + (Prims.of_int (137)) + (Prims.of_int (44))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (135)) + (Prims.of_int (12)) + (Prims.of_int (137)) + (Prims.of_int (44))))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (FStar_Reflection_V2_Builtins.range_of_term res_ty)) - uu___3)) - uu___3)) + uu___9)) + uu___9)) | FStar_Pervasives_Native.Some (Pulse_Syntax_Base.C_Tot ty1) -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + FStar_Tactics_NamedView.inspect + res_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -913,39 +984,25 @@ let rec (rebuild_abs : (Prims.of_int (149)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_NamedView.inspect - res_ty)) + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> - match uu___3 + uu___9 -> + match uu___9 with | FStar_Tactics_NamedView.Tv_Arrow (b1, - uu___4) + uu___10) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (142)) - (Prims.of_int (25)) - (Prims.of_int (142)) - (Prims.of_int (91))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (141)) - (Prims.of_int (14)) - (Prims.of_int (142)) - (Prims.of_int (91))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___11 + = + let uu___12 + = + FStar_Tactics_V2_Derived.binder_to_string + b1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -963,50 +1020,63 @@ let rec (rebuild_abs : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_V2_Derived.binder_to_string - b1)) + uu___12) (fun - uu___5 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___14 + -> Prims.strcat "Expected a binder for " (Prims.strcat - uu___5 ""))))) - (fun - uu___5 -> - (fun - uu___5 -> - Obj.magic - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - (body.Pulse_Syntax_Base.range1)) - uu___5)) - uu___5)) - | - uu___4 -> + uu___13 + ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (146)) - (Prims.of_int (20)) - (Prims.of_int (148)) - (Prims.of_int (52))))) + (Prims.of_int (142)) + (Prims.of_int (25)) + (Prims.of_int (142)) + (Prims.of_int (91))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (145)) - (Prims.of_int (16)) - (Prims.of_int (148)) - (Prims.of_int (52))))) + (Prims.of_int (141)) + (Prims.of_int (14)) + (Prims.of_int (142)) + (Prims.of_int (91))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + Obj.magic + (Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + (body.Pulse_Syntax_Base.range1)) + uu___12)) + uu___12)) + | + uu___10 + -> + let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.comp_to_string + (Pulse_Syntax_Base.C_Tot + ty1) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1024,37 +1094,60 @@ let rec (rebuild_abs : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - (Pulse_Syntax_Base.C_Tot - ty1))) + uu___12) (fun - uu___5 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___14 + -> Prims.strcat "Incorrect annotation on function body, expected a stateful computation type; got: " (Prims.strcat - uu___5 ""))))) + uu___13 + ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (146)) + (Prims.of_int (20)) + (Prims.of_int (148)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (145)) + (Prims.of_int (16)) + (Prims.of_int (148)) + (Prims.of_int (52))))) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun - uu___5 -> + uu___12 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) - uu___5)) - uu___5))) - uu___3)) + uu___12)) + uu___12))) + uu___9)) | FStar_Pervasives_Native.Some c -> Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> { Pulse_Syntax_Base.term1 = @@ -1089,28 +1182,16 @@ let rec (rebuild_abs : = (t.Pulse_Syntax_Base.effect_tag) }))))) - | uu___2 -> + | uu___7 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (159)) - (Prims.of_int (12)) - (Prims.of_int (160)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (158)) - (Prims.of_int (8)) - (Prims.of_int (160)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + FStar_Tactics_V2_Builtins.term_to_string + annot in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1128,32 +1209,74 @@ let rec (rebuild_abs : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - annot)) + uu___9) (fun - uu___3 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___11 + -> Prims.strcat "Unexpected type of abstraction: " (Prims.strcat - uu___3 ""))))) + uu___10 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (159)) + (Prims.of_int (12)) + (Prims.of_int (160)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (158)) + (Prims.of_int (8)) + (Prims.of_int (160)) + (Prims.of_int (41))))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___3)) - uu___3)))) - uu___2))) - uu___2))) uu___1))) - uu___1)) - | uu___1 -> + uu___9)) + uu___9)))) + uu___7))) + uu___6))) uu___4))) + uu___3)) + | uu___2 -> + let uu___3 = + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string annot in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Abs.fst" + (Prims.of_int (166)) (Prims.of_int (22)) + (Prims.of_int (166)) (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat + "Unexpected arity of abstraction: expected a term of type " + (Prims.strcat uu___5 ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1166,39 +1289,14 @@ let rec (rebuild_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (164)) (Prims.of_int (6)) (Prims.of_int (166)) (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (166)) - (Prims.of_int (22)) - (Prims.of_int (166)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - annot)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat - "Unexpected arity of abstraction: expected a term of type " - (Prims.strcat uu___2 ""))))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some - (t.Pulse_Syntax_Base.range1)) uu___2)) - uu___2))) uu___) + (t.Pulse_Syntax_Base.range1)) uu___4)) + uu___4))) uu___1) let (preprocess_abs : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -1206,6 +1304,7 @@ let (preprocess_abs : = fun g -> fun t -> + let uu___ = arrow_of_abs g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1216,11 +1315,34 @@ let (preprocess_abs : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (172)) (Prims.of_int (3)) (Prims.of_int (177)) - (Prims.of_int (7))))) (Obj.magic (arrow_of_abs g t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (7))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (annot, t1) -> + let uu___2 = + debug_abs g + (fun uu___3 -> + let uu___4 = + Pulse_Syntax_Printer.term_to_string annot in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (173)) (Prims.of_int (63)) + (Prims.of_int (173)) (Prims.of_int (87))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat "arrow_of_abs = " + (Prims.strcat uu___5 "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1233,35 +1355,12 @@ let (preprocess_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (173)) (Prims.of_int (89)) (Prims.of_int (177)) (Prims.of_int (7))))) - (Obj.magic - (debug_abs g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (173)) - (Prims.of_int (63)) - (Prims.of_int (173)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - annot)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat "arrow_of_abs = " - (Prims.strcat uu___2 "\n")))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Pulse_Checker_Pure.instantiate_term_implicits + g annot FStar_Pervasives_Native.None in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1280,13 +1379,13 @@ let (preprocess_abs : (Prims.of_int (89)) (Prims.of_int (177)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g annot FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with - | (annot1, uu___3) -> + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with + | (annot1, uu___6) -> + let uu___7 = + rebuild_abs g t1 annot1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1305,10 +1404,45 @@ let (preprocess_abs : (Prims.of_int (4)) (Prims.of_int (177)) (Prims.of_int (7))))) - (Obj.magic - (rebuild_abs g t1 annot1)) - (fun uu___4 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun abs -> + let uu___8 = + debug_abs g + (fun uu___9 -> + let uu___10 = + Pulse_Syntax_Printer.st_term_to_string + abs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (176)) + (Prims.of_int (62)) + (Prims.of_int (176)) + (Prims.of_int (87))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic + uu___10) + (fun uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Prims.strcat + "rebuild_abs = " + (Prims.strcat + uu___11 + "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1327,46 +1461,13 @@ let (preprocess_abs : (Prims.of_int (8)) (Prims.of_int (175)) (Prims.of_int (11))))) - (Obj.magic - (debug_abs g - (fun uu___4 - -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (176)) - (Prims.of_int (62)) - (Prims.of_int (176)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.st_term_to_string - abs)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Prims.strcat - "rebuild_abs = " - (Prims.strcat - uu___5 - "\n")))))) - (fun uu___4 -> + (Obj.magic uu___8) + (fun uu___9 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___5 + (fun uu___10 -> abs)))) - uu___4))) uu___2))) - uu___1))) uu___) + uu___8))) uu___5))) + uu___3))) uu___1) let sub_effect_comp : 'uuuuu . Pulse_Typing_Env.env -> @@ -1442,6 +1543,12 @@ let (check_effect_annotation : fun r -> fun asc -> fun c_computed -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Prims.Mkdtuple2 + (c_computed, (Pulse_Typing.STS_Refl (g, c_computed))))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1453,32 +1560,29 @@ let (check_effect_annotation : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (202)) (Prims.of_int (2)) (Prims.of_int (251)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Prims.Mkdtuple2 - (c_computed, (Pulse_Typing.STS_Refl (g, c_computed))))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun nop -> match asc.Pulse_Syntax_Base.elaborated with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> nop))) + (fun uu___1 -> nop))) | FStar_Pervasives_Native.Some c -> Obj.magic (Obj.repr (match (c, c_computed) with - | (Pulse_Syntax_Base.C_Tot uu___, - Pulse_Syntax_Base.C_Tot uu___1) -> + | (Pulse_Syntax_Base.C_Tot uu___1, + Pulse_Syntax_Base.C_Tot uu___2) -> Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> nop)) - | (Pulse_Syntax_Base.C_ST uu___, - Pulse_Syntax_Base.C_ST uu___1) -> + (fun uu___3 -> nop)) + | (Pulse_Syntax_Base.C_ST uu___1, + Pulse_Syntax_Base.C_ST uu___2) -> Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> nop)) + (fun uu___3 -> nop)) | (Pulse_Syntax_Base.C_STGhost (i, c1), Pulse_Syntax_Base.C_STGhost (j, c2)) -> Obj.repr @@ -1486,10 +1590,17 @@ let (check_effect_annotation : then Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> nop)) + (fun uu___1 -> nop)) else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Syntax_Base.mk_binder + "res" FStar_Range.range_0 + c2.Pulse_Syntax_Base.res)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1506,13 +1617,15 @@ let (check_effect_annotation : (Prims.of_int (53)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Base.mk_binder - "res" FStar_Range.range_0 - c2.Pulse_Syntax_Base.res)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun b -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing.tm_inames_subset + j i)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1531,12 +1644,14 @@ let (check_effect_annotation : (Prims.of_int (39)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.tm_inames_subset - j i)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun phi -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1555,14 +1670,20 @@ let (check_effect_annotation : (Prims.of_int (51)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) - (fun uu___1 + (Obj.magic + uu___4) + (fun uu___5 -> (fun typing -> + let uu___5 + = + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + (fun + uu___6 -> + Pulse_Checker_Pure.try_check_prop_validity + g phi ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1582,77 +1703,63 @@ let (check_effect_annotation : (Prims.of_int (242)) (Prims.of_int (20))))) (Obj.magic - (FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun - uu___1 -> - Pulse_Checker_Pure.try_check_prop_validity - g phi ()))) + uu___5) (fun - uu___1 -> + uu___6 -> (fun tok -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (226)) - (Prims.of_int (6)) - (Prims.of_int (233)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (233)) - (Prims.of_int (8)) - (Prims.of_int (242)) - (Prims.of_int (20))))) - (if + let uu___6 + = + if FStar_Pervasives_Native.uu___is_None tok then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (47)) - (Prims.of_int (232)) - (Prims.of_int (9))))) + (let uu___7 + = + let uu___8 + = + let uu___9 + = + let uu___10 + = + Pulse_PP.pp + Pulse_PP.printable_term + i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (8)) - (Prims.of_int (232)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (229)) + (Prims.of_int (74)) + (Prims.of_int (229)) + (Prims.of_int (80))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (229)) (Prims.of_int (10)) - (Prims.of_int (231)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (47)) - (Prims.of_int (232)) - (Prims.of_int (9))))) + (Prims.of_int (229)) + (Prims.of_int (80))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Annotated effect expects only invariants in") + uu___11)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1670,61 +1777,85 @@ let (check_effect_annotation : (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + j in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) - (Prims.of_int (74)) - (Prims.of_int (229)) - (Prims.of_int (80))))) + (Prims.of_int (230)) + (Prims.of_int (87)) + (Prims.of_int (230)) + (Prims.of_int (93))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) + (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (229)) - (Prims.of_int (80))))) + (Prims.of_int (230)) + (Prims.of_int (93))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - i)) + uu___13) (fun - uu___1 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___15 + -> FStar_Pprint.prefix (Prims.of_int (4)) Prims.int_one (Pulse_PP.text - "Annotated effect expects only invariants in") - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "to be opened; but computed effect claims that invariants") + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (231)) - (Prims.of_int (27))))) + (Prims.of_int (230)) + (Prims.of_int (93))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) + (Prims.of_int (230)) (Prims.of_int (10)) (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___13 + (Pulse_PP.text + "are opened"))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1732,97 +1863,118 @@ let (check_effect_annotation : "Pulse.Checker.Abs.fst" (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (231)) + (Prims.of_int (27))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) + (Prims.of_int (229)) (Prims.of_int (10)) (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___10 + uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) - (Prims.of_int (87)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (229)) + (Prims.of_int (10)) + (Prims.of_int (231)) + (Prims.of_int (27))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) - (Prims.of_int (10)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (228)) + (Prims.of_int (47)) + (Prims.of_int (232)) + (Prims.of_int (9))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - j)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "to be opened; but computed effect claims that invariants") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___2 - (Pulse_PP.text - "are opened"))))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac + uu___8) (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___1 - uu___2)))) - uu___1))) - (fun - uu___1 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - [uu___1])))) + uu___10 + -> + [uu___9])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (228)) + (Prims.of_int (47)) + (Prims.of_int (232)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (228)) + (Prims.of_int (8)) + (Prims.of_int (232)) + (Prims.of_int (9))))) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> + uu___8 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term i)) - uu___1)) - uu___1))) + uu___8)) + uu___8))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - ())))) + uu___8 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (226)) + (Prims.of_int (6)) + (Prims.of_int (233)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (233)) + (Prims.of_int (8)) + (Prims.of_int (242)) + (Prims.of_int (20))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___8 -> match tok with | @@ -1833,9 +1985,9 @@ let (check_effect_annotation : ((match c_computed with | Pulse_Syntax_Base.C_STAtomic - (uu___3, + (uu___9, obs, - uu___4) + uu___10) -> Pulse_Typing.STS_AtomicInvs (g, c2, @@ -1843,15 +1995,15 @@ let (check_effect_annotation : obs, obs, ()) | Pulse_Syntax_Base.C_STGhost - (uu___3, - uu___4) + (uu___9, + uu___10) -> Pulse_Typing.STS_GhostInvs (g, c2, j, i, ())))))))) - uu___1))) - uu___1))) - uu___1))) uu___1))) + uu___6))) + uu___5))) + uu___4))) uu___3))) | (Pulse_Syntax_Base.C_STAtomic (i, Pulse_Syntax_Base.Observable, c1), Pulse_Syntax_Base.C_STAtomic @@ -1861,10 +2013,17 @@ let (check_effect_annotation : then Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> nop)) + (fun uu___1 -> nop)) else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Syntax_Base.mk_binder + "res" FStar_Range.range_0 + c2.Pulse_Syntax_Base.res)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1881,13 +2040,15 @@ let (check_effect_annotation : (Prims.of_int (53)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Base.mk_binder - "res" FStar_Range.range_0 - c2.Pulse_Syntax_Base.res)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun b -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing.tm_inames_subset + j i)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1906,12 +2067,14 @@ let (check_effect_annotation : (Prims.of_int (39)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.tm_inames_subset - j i)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun phi -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1930,14 +2093,20 @@ let (check_effect_annotation : (Prims.of_int (51)) (Prims.of_int (242)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) - (fun uu___1 + (Obj.magic + uu___4) + (fun uu___5 -> (fun typing -> + let uu___5 + = + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + (fun + uu___6 -> + Pulse_Checker_Pure.try_check_prop_validity + g phi ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1957,85 +2126,71 @@ let (check_effect_annotation : (Prims.of_int (242)) (Prims.of_int (20))))) (Obj.magic - (FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun - uu___1 -> - Pulse_Checker_Pure.try_check_prop_validity - g phi ()))) + uu___5) (fun - uu___1 -> + uu___6 -> (fun tok -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (226)) - (Prims.of_int (6)) - (Prims.of_int (233)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (233)) - (Prims.of_int (8)) - (Prims.of_int (242)) - (Prims.of_int (20))))) - (if + let uu___6 + = + if FStar_Pervasives_Native.uu___is_None tok then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + let uu___8 + = + let uu___9 + = + let uu___10 + = + Pulse_PP.pp + Pulse_PP.printable_term + i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (47)) - (Prims.of_int (232)) - (Prims.of_int (9))))) + (Prims.of_int (229)) + (Prims.of_int (74)) + (Prims.of_int (229)) + (Prims.of_int (80))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (8)) - (Prims.of_int (232)) - (Prims.of_int (9))))) + (Prims.of_int (229)) + (Prims.of_int (10)) + (Prims.of_int (229)) + (Prims.of_int (80))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Annotated effect expects only invariants in") + uu___11)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (229)) (Prims.of_int (10)) - (Prims.of_int (231)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (228)) - (Prims.of_int (47)) - (Prims.of_int (232)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) - (Prims.of_int (10)) - (Prims.of_int (229)) - (Prims.of_int (80))))) + (Prims.of_int (229)) + (Prims.of_int (80))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2045,61 +2200,85 @@ let (check_effect_annotation : (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + j in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) - (Prims.of_int (74)) - (Prims.of_int (229)) - (Prims.of_int (80))))) + (Prims.of_int (230)) + (Prims.of_int (87)) + (Prims.of_int (230)) + (Prims.of_int (93))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) + (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (229)) - (Prims.of_int (80))))) + (Prims.of_int (230)) + (Prims.of_int (93))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - i)) + uu___13) (fun - uu___1 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___15 + -> FStar_Pprint.prefix (Prims.of_int (4)) Prims.int_one (Pulse_PP.text - "Annotated effect expects only invariants in") - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "to be opened; but computed effect claims that invariants") + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (231)) - (Prims.of_int (27))))) + (Prims.of_int (230)) + (Prims.of_int (93))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (229)) + (Prims.of_int (230)) (Prims.of_int (10)) (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___13 + (Pulse_PP.text + "are opened"))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2107,97 +2286,118 @@ let (check_effect_annotation : "Pulse.Checker.Abs.fst" (Prims.of_int (230)) (Prims.of_int (10)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (231)) + (Prims.of_int (27))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) + (Prims.of_int (229)) (Prims.of_int (10)) (Prims.of_int (231)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___10 + uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) - (Prims.of_int (87)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (229)) + (Prims.of_int (10)) + (Prims.of_int (231)) + (Prims.of_int (27))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (230)) - (Prims.of_int (10)) - (Prims.of_int (230)) - (Prims.of_int (93))))) + (Prims.of_int (228)) + (Prims.of_int (47)) + (Prims.of_int (232)) + (Prims.of_int (9))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - j)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "to be opened; but computed effect claims that invariants") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___2 - (Pulse_PP.text - "are opened"))))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___1 - uu___2)))) - uu___1))) + uu___8) (fun - uu___1 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - [uu___1])))) + uu___10 + -> + [uu___9])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (228)) + (Prims.of_int (47)) + (Prims.of_int (232)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (228)) + (Prims.of_int (8)) + (Prims.of_int (232)) + (Prims.of_int (9))))) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> + uu___8 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term i)) - uu___1)) - uu___1))) + uu___8)) + uu___8))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - ())))) + uu___8 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (226)) + (Prims.of_int (6)) + (Prims.of_int (233)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (233)) + (Prims.of_int (8)) + (Prims.of_int (242)) + (Prims.of_int (20))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___8 -> match tok with | @@ -2208,9 +2408,9 @@ let (check_effect_annotation : ((match c_computed with | Pulse_Syntax_Base.C_STAtomic - (uu___3, + (uu___9, obs, - uu___4) + uu___10) -> Pulse_Typing.STS_AtomicInvs (g, c2, @@ -2218,18 +2418,196 @@ let (check_effect_annotation : obs, obs, ()) | Pulse_Syntax_Base.C_STGhost - (uu___3, - uu___4) + (uu___9, + uu___10) -> Pulse_Typing.STS_GhostInvs (g, c2, j, i, ())))))))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - | (uu___, uu___1) -> + uu___6))) + uu___5))) + uu___4))) uu___3))) + | (uu___1, uu___2) -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + Pulse_Syntax_Printer.tag_of_comp + c in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (248)) + (Prims.of_int (40)) + (Prims.of_int (248)) + (Prims.of_int (57))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (248)) + (Prims.of_int (22)) + (Prims.of_int (248)) + (Prims.of_int (58))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.arbitrary_string + uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (248)) + (Prims.of_int (22)) + (Prims.of_int (248)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (247)) + (Prims.of_int (8)) + (Prims.of_int (248)) + (Prims.of_int (58))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Expected effect") + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (247)) + (Prims.of_int (8)) + (Prims.of_int (248)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (247)) + (Prims.of_int (8)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + let uu___9 = + Pulse_Syntax_Printer.tag_of_comp + c_computed in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (250)) + (Prims.of_int (40)) + (Prims.of_int (250)) + (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (250)) + (Prims.of_int (22)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + FStar_Pprint.arbitrary_string + uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (250)) + (Prims.of_int (22)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (249)) + (Prims.of_int (8)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "but this function body has effect") + uu___9)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (249)) + (Prims.of_int (8)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (247)) + (Prims.of_int (8)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.op_Hat_Slash_Hat + uu___6 uu___8)))) + uu___6) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (247)) + (Prims.of_int (8)) + (Prims.of_int (250)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (246)) + (Prims.of_int (26)) + (Prims.of_int (251)) + (Prims.of_int (7))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> [uu___5])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2246,191 +2624,14 @@ let (check_effect_annotation : (Prims.of_int (6)) (Prims.of_int (251)) (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (247)) - (Prims.of_int (8)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (246)) - (Prims.of_int (26)) - (Prims.of_int (251)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (247)) - (Prims.of_int (8)) - (Prims.of_int (248)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (247)) - (Prims.of_int (8)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (248)) - (Prims.of_int (22)) - (Prims.of_int (248)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (247)) - (Prims.of_int (8)) - (Prims.of_int (248)) - (Prims.of_int (58))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (248)) - (Prims.of_int (40)) - (Prims.of_int (248)) - (Prims.of_int (57))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (248)) - (Prims.of_int (22)) - (Prims.of_int (248)) - (Prims.of_int (58))))) - (Obj.magic - (Pulse_Syntax_Printer.tag_of_comp - c)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> - FStar_Pprint.arbitrary_string - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "Expected effect") - uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (249)) - (Prims.of_int (8)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (247)) - (Prims.of_int (8)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (250)) - (Prims.of_int (22)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (249)) - (Prims.of_int (8)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (250)) - (Prims.of_int (40)) - (Prims.of_int (250)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (250)) - (Prims.of_int (22)) - (Prims.of_int (250)) - (Prims.of_int (67))))) - (Obj.magic - (Pulse_Syntax_Printer.tag_of_comp - c_computed)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.arbitrary_string - uu___3)))) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "but this function body has effect") - uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - FStar_Pprint.op_Hat_Slash_Hat - uu___2 - uu___3)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> [uu___2])))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some - r) uu___2)) uu___2))))) - uu___) + r) uu___4)) uu___4))))) + uu___1) let (maybe_rewrite_body_typing : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -2463,6 +2664,9 @@ let (maybe_rewrite_body_typing : (Obj.repr (match c with | Pulse_Syntax_Base.C_Tot t' -> + let uu___ = + Pulse_Checker_Pure.instantiate_term_implicits + g t FStar_Pervasives_Native.None in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2480,13 +2684,14 @@ let (maybe_rewrite_body_typing : (Prims.of_int (20)) (Prims.of_int (278)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g t FStar_Pervasives_Native.None)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (t1, uu___1) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (t1, uu___2) -> + let uu___3 = + Pulse_Checker_Pure.check_universe + g t1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2505,15 +2710,19 @@ let (maybe_rewrite_body_typing : (Prims.of_int (76)) (Prims.of_int (277)) (Prims.of_int (26))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - g t1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (u, t_typing) -> + let uu___5 = + Pulse_Checker_Base.norm_st_typing_inverse + g e t' d + u t1 () + [FStar_Pervasives.hnf; + FStar_Pervasives.delta] in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2533,16 +2742,12 @@ let (maybe_rewrite_body_typing : (Prims.of_int (277)) (Prims.of_int (26))))) (Obj.magic - (Pulse_Checker_Base.norm_st_typing_inverse - g e t' d - u t1 () - [FStar_Pervasives.hnf; - FStar_Pervasives.delta])) + uu___5) (fun - uu___3 -> + uu___6 -> (fun - uu___3 -> - match uu___3 + uu___6 -> + match uu___6 with | FStar_Pervasives_Native.None @@ -2556,29 +2761,17 @@ let (maybe_rewrite_body_typing : | FStar_Pervasives_Native.Some d1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (273)) - (Prims.of_int (10)) - (Prims.of_int (276)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (277)) - (Prims.of_int (10)) - (Prims.of_int (277)) - (Prims.of_int (26))))) - (Obj.magic - (debug_abs + let uu___7 + = + debug_abs g (fun - uu___4 -> + uu___8 -> + let uu___9 + = + Pulse_Syntax_Printer.comp_to_string + (Pulse_Syntax_Base.C_Tot + t1) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2597,33 +2790,20 @@ let (maybe_rewrite_body_typing : (Prims.of_int (276)) (Prims.of_int (42))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - (Pulse_Syntax_Base.C_Tot - t1))) + uu___9) (fun - uu___5 -> + uu___10 + -> (fun - uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (274)) - (Prims.of_int (22)) - (Prims.of_int (276)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (274)) - (Prims.of_int (22)) - (Prims.of_int (276)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10 + -> + let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.comp_to_string + c in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2641,40 +2821,83 @@ let (maybe_rewrite_body_typing : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - c)) + uu___12) (fun - uu___6 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___14 + -> fun x -> Prims.strcat (Prims.strcat "maybe_rewrite_body_typing:{\nfrom " (Prims.strcat - uu___6 + uu___13 "\nto ")) (Prims.strcat - x "}\n"))))) + x "}\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (274)) + (Prims.of_int (22)) + (Prims.of_int (276)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (274)) + (Prims.of_int (22)) + (Prims.of_int (276)) + (Prims.of_int (42))))) + (Obj.magic + uu___11) (fun - uu___6 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - uu___6 - uu___5)))) - uu___5)))) + uu___13 + -> + uu___12 + uu___10)))) + uu___10)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (273)) + (Prims.of_int (10)) + (Prims.of_int (276)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (277)) + (Prims.of_int (10)) + (Prims.of_int (277)) + (Prims.of_int (26))))) + (Obj.magic + uu___7) (fun - uu___4 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___9 -> Prims.Mkdtuple2 ((Pulse_Syntax_Base.C_Tot t1), d1))))) - uu___3))) - uu___2))) uu___) + uu___6))) + uu___4))) uu___1) | uu___ -> Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some @@ -2683,7 +2906,13 @@ let (maybe_rewrite_body_typing : | FStar_Pervasives_Native.Some c1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Syntax_Base.st_comp_of_comp + c1)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2700,10 +2929,8 @@ let (maybe_rewrite_body_typing : (Prims.of_int (6)) (Prims.of_int (284)) (Prims.of_int (92))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Base.st_comp_of_comp c1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun st -> Obj.magic (Pulse_Typing_Env.fail g @@ -2711,8 +2938,8 @@ let (maybe_rewrite_body_typing : (Pulse_RuntimeUtils.range_of_term st.Pulse_Syntax_Base.pre)) "Unexpected annotation on a function body")) - uu___)))) uu___4 uu___3 uu___2 uu___1 - uu___ + uu___1)))) uu___4 uu___3 uu___2 + uu___1 uu___ let (open_ascription : Pulse_Syntax_Base.comp_ascription -> Pulse_Syntax_Base.nvar -> Pulse_Syntax_Base.comp_ascription) @@ -2743,6 +2970,10 @@ let rec (check_abs_core : fun g -> fun t -> fun check -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2754,9 +2985,8 @@ let rec (check_abs_core : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (300)) (Prims.of_int (2)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun range -> match t.Pulse_Syntax_Base.term1 with | Pulse_Syntax_Base.Tm_Abs @@ -2769,6 +2999,8 @@ let rec (check_abs_core : Pulse_Syntax_Base.ascription = asc; Pulse_Syntax_Base.body = body;_} -> + let uu___1 = + Pulse_Checker_Pure.compute_tot_term_type g t1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2781,13 +3013,14 @@ let rec (check_abs_core : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (301)) (Prims.of_int (99)) (Prims.of_int (434)) (Prims.of_int (29))))) - (Obj.magic - (Pulse_Checker_Pure.compute_tot_term_type g t1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives.Mkdtuple3 - (t2, uu___1, uu___2) -> + (t2, uu___3, uu___4) -> + let uu___5 = + Pulse_Checker_Pure.check_universe g t2 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2806,14 +3039,18 @@ let rec (check_abs_core : (Prims.of_int (52)) (Prims.of_int (434)) (Prims.of_int (29))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - g t2)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 with + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Prims.Mkdtuple2 (u, t_typing) -> + let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Pulse_Typing_Env.fresh + g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2832,12 +3069,17 @@ let rec (check_abs_core : (Prims.of_int (22)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Pulse_Typing_Env.fresh - g)) - (fun uu___4 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun x -> + let uu___8 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___9 -> + (ppname, + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2856,15 +3098,26 @@ let rec (check_abs_core : (Prims.of_int (25)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - (ppname, - x))) - (fun uu___4 + (Obj.magic + uu___8) + (fun uu___9 -> (fun px -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Syntax_Pure.tm_var + { + Pulse_Syntax_Base.nm_index + = x; + Pulse_Syntax_Base.nm_ppname + = ppname + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2883,20 +3136,23 @@ let rec (check_abs_core : (Prims.of_int (53)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Pure.tm_var - { - Pulse_Syntax_Base.nm_index - = x; - Pulse_Syntax_Base.nm_ppname - = ppname - })) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun var -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Env.push_binding + g x + ppname t2)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2915,16 +3171,22 @@ let rec (check_abs_core : (Prims.of_int (41)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing_Env.push_binding - g x - ppname t2)) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun g' -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Syntax_Naming.open_st_term_nv + body px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2943,16 +3205,23 @@ let rec (check_abs_core : (Prims.of_int (48)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Naming.open_st_term_nv - body px)) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> (fun body_opened -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + open_ascription + asc px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2971,13 +3240,11 @@ let rec (check_abs_core : (Prims.of_int (4)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - open_ascription - asc px)) + (Obj.magic + uu___12) (fun - uu___4 -> + uu___13 + -> (fun asc1 -> match @@ -2985,7 +3252,14 @@ let rec (check_abs_core : with | Pulse_Syntax_Base.Tm_Abs - uu___4 -> + uu___13 + -> + let uu___14 + = + check_abs_core + g' + body_opened + check in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3005,15 +3279,14 @@ let rec (check_abs_core : (Prims.of_int (348)) (Prims.of_int (29))))) (Obj.magic - (check_abs_core - g' - body_opened - check)) + uu___14) (fun - uu___5 -> + uu___15 + -> (fun - uu___5 -> - match uu___5 + uu___15 + -> + match uu___15 with | FStar_Pervasives.Mkdtuple3 @@ -3021,26 +3294,16 @@ let rec (check_abs_core : c_body, body_typing) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (318)) - (Prims.of_int (8)) - (Prims.of_int (322)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (314)) - (Prims.of_int (82)) - (Prims.of_int (348)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___16 + = + let uu___17 + = + sub_effect_comp + g' + body1.Pulse_Syntax_Base.range1 + asc1 + c_body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3058,17 +3321,15 @@ let rec (check_abs_core : (Prims.of_int (322)) (Prims.of_int (35))))) (Obj.magic - (sub_effect_comp - g' - body1.Pulse_Syntax_Base.range1 - asc1 - c_body)) + uu___17) (fun - uu___6 -> + uu___18 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - match uu___6 + uu___19 + -> + match uu___18 with | FStar_Pervasives_Native.None @@ -3089,18 +3350,48 @@ let rec (check_abs_core : c_body, c_body1, body_typing, - lift))))))) + lift))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (318)) + (Prims.of_int (8)) + (Prims.of_int (322)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (314)) + (Prims.of_int (82)) + (Prims.of_int (348)) + (Prims.of_int (29))))) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun - uu___6 -> - match uu___6 + uu___17 + -> + match uu___17 with | Prims.Mkdtuple2 (c_body1, body_typing1) -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + uu___17)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3119,14 +3410,21 @@ let rec (check_abs_core : (Prims.of_int (8)) (Prims.of_int (348)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___6)) + (Obj.magic + uu___18) (fun - uu___7 -> + uu___19 + -> (fun - uu___7 -> + uu___19 + -> + let uu___20 + = + check_effect_annotation + g' + body1.Pulse_Syntax_Base.range1 + asc1 + c_body1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3146,21 +3444,33 @@ let rec (check_abs_core : (Prims.of_int (348)) (Prims.of_int (29))))) (Obj.magic - (check_effect_annotation - g' - body1.Pulse_Syntax_Base.range1 - asc1 - c_body1)) + uu___20) (fun - uu___8 -> + uu___21 + -> (fun - uu___8 -> - match uu___8 + uu___21 + -> + match uu___21 with | Prims.Mkdtuple2 (c_body2, d_sub) -> + let uu___22 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___23 + -> + Pulse_Typing.T_Sub + (g', + body1, + c_body1, + c_body2, + body_typing1, + d_sub))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3179,21 +3489,21 @@ let rec (check_abs_core : (Prims.of_int (58)) (Prims.of_int (348)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Pulse_Typing.T_Sub - (g', - body1, - c_body1, - c_body2, - body_typing1, - d_sub))) + (Obj.magic + uu___22) (fun - uu___9 -> + uu___23 + -> (fun body_typing2 -> + let uu___23 + = + maybe_rewrite_body_typing + g' body1 + c_body2 + body_typing2 + asc1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3213,90 +3523,64 @@ let rec (check_abs_core : (Prims.of_int (348)) (Prims.of_int (29))))) (Obj.magic - (maybe_rewrite_body_typing - g' body1 - c_body2 - body_typing2 - asc1)) + uu___23) (fun - uu___9 -> + uu___24 + -> (fun - uu___9 -> - match uu___9 + uu___24 + -> + match uu___24 with | Prims.Mkdtuple2 (c_body3, body_typing3) -> + let uu___25 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (335)) - (Prims.of_int (24)) - (Prims.of_int (335)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (336)) - (Prims.of_int (50)) - (Prims.of_int (348)) - (Prims.of_int (29))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___26 -> Pulse_Syntax_Naming.close_st_term - body1 x)) - (fun - uu___10 - -> - (fun - body_closed - -> + body1 x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (340)) - (Prims.of_int (8)) - (Prims.of_int (343)) - (Prims.of_int (28))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (348)) - (Prims.of_int (6)) - (Prims.of_int (348)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (340)) - (Prims.of_int (8)) - (Prims.of_int (342)) - (Prims.of_int (92))))) + (Prims.of_int (335)) + (Prims.of_int (24)) + (Prims.of_int (335)) + (Prims.of_int (44))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (340)) - (Prims.of_int (8)) - (Prims.of_int (343)) - (Prims.of_int (28))))) + (Prims.of_int (336)) + (Prims.of_int (50)) + (Prims.of_int (348)) + (Prims.of_int (29))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + (fun + body_closed + -> + let uu___26 + = + let uu___27 + = + let uu___28 + = + FStar_Tactics_Unseal.unseal + binder_attrs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3314,18 +3598,22 @@ let rec (check_abs_core : (Prims.of_int (342)) (Prims.of_int (92))))) (Obj.magic - (FStar_Tactics_Unseal.unseal - binder_attrs)) + uu___28) (fun - uu___10 + uu___29 -> (fun - uu___10 + uu___29 -> Obj.magic (FStar_Tactics_Util.map (fun attr -> + let uu___30 + = + Pulse_Checker_Pure.instantiate_term_implicits + g attr + FStar_Pervasives_Native.None in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3344,35 +3632,72 @@ let rec (check_abs_core : (Prims.of_int (342)) (Prims.of_int (91))))) (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g attr - FStar_Pervasives_Native.None)) + uu___30) (fun - uu___11 + uu___31 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___32 -> FStar_Pervasives_Native.fst - uu___11))) - uu___10)) - uu___10))) + uu___31))) + uu___29)) + uu___29) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (340)) + (Prims.of_int (8)) + (Prims.of_int (342)) + (Prims.of_int (92))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (340)) + (Prims.of_int (8)) + (Prims.of_int (343)) + (Prims.of_int (28))))) + (Obj.magic + uu___27) (fun - uu___10 + uu___28 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___29 -> FStar_Sealed.seal - uu___10)))) + uu___28)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (340)) + (Prims.of_int (8)) + (Prims.of_int (343)) + (Prims.of_int (28))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (348)) + (Prims.of_int (6)) + (Prims.of_int (348)) + (Prims.of_int (29))))) + (Obj.magic + uu___26) (fun binder_attrs1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___27 -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wtag @@ -3428,69 +3753,41 @@ let rec (check_abs_core : c_body3, (), body_typing3))))))) - uu___10))) - uu___9))) - uu___9))) - uu___8))) - uu___7))) - uu___6))) - uu___5)) + uu___26))) + uu___24))) + uu___23))) + uu___21))) + uu___19))) + uu___17))) + uu___15)) | - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (351)) - (Prims.of_int (8)) - (Prims.of_int (385)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (349)) - (Prims.of_int (10)) - (Prims.of_int (434)) - (Prims.of_int (29))))) - (match + uu___13 + -> + let uu___14 + = + match asc1.Pulse_Syntax_Base.elaborated with | FStar_Pervasives_Native.None -> - Obj.magic - (Pulse_Typing_Env.fail + Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) - "Missing annotation on a function body") + "Missing annotation on a function body" | FStar_Pervasives_Native.Some (Pulse_Syntax_Base.C_Tot r) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (358)) - (Prims.of_int (21)) - (Prims.of_int (360)) - (Prims.of_int (53))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (356)) - (Prims.of_int (28)) - (Prims.of_int (361)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___15 + = + let uu___16 + = + Pulse_Syntax_Printer.comp_to_string + (Pulse_Syntax_Base.C_Tot + r) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3508,51 +3805,57 @@ let rec (check_abs_core : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - (Pulse_Syntax_Base.C_Tot - r))) + uu___16) (fun - uu___5 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___18 + -> Prims.strcat "Incorrect annotation on a function, expected a computation type, got: " (Prims.strcat - uu___5 ""))))) + uu___17 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (358)) + (Prims.of_int (21)) + (Prims.of_int (360)) + (Prims.of_int (53))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (356)) + (Prims.of_int (28)) + (Prims.of_int (361)) + (Prims.of_int (9))))) + (Obj.magic + uu___15) (fun - uu___5 -> + uu___16 + -> (fun - uu___5 -> + uu___16 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) - uu___5)) - uu___5)) + uu___16)) + uu___16) | FStar_Pervasives_Native.Some c -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (365)) - (Prims.of_int (12)) - (Prims.of_int (373)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (381)) - (Prims.of_int (10)) - (Prims.of_int (385)) - (Prims.of_int (47))))) - (if + let uu___15 + = + if (Pulse_Syntax_Base.uu___is_C_STGhost c) || (Pulse_Syntax_Base.uu___is_C_STAtomic @@ -3560,7 +3863,17 @@ let rec (check_abs_core : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Syntax_Naming.open_term_nv + (Pulse_Syntax_Base.comp_inames + c) px)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3577,16 +3890,24 @@ let rec (check_abs_core : (Prims.of_int (60)) (Prims.of_int (371)) (Prims.of_int (19))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Syntax_Naming.open_term_nv - (Pulse_Syntax_Base.comp_inames - c) px)) + (Obj.magic + uu___16) (fun - uu___5 -> + uu___17 + -> (fun inames -> + let uu___17 + = + FStar_Tactics_V2_Builtins.norm_well_typed_term + (Pulse_Typing.elab_env + g) + [FStar_Pervasives.primops; + FStar_Pervasives.iota; + FStar_Pervasives.zeta; + FStar_Pervasives.delta_attr + ["Pulse.Lib.Core.unfold_check_opens"]] + inames in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3606,52 +3927,66 @@ let rec (check_abs_core : (Prims.of_int (367)) (Prims.of_int (23))))) (Obj.magic - (FStar_Tactics_V2_Builtins.norm_well_typed_term - (Pulse_Typing.elab_env - g) - [FStar_Pervasives.primops; - FStar_Pervasives.iota; - FStar_Pervasives.zeta; - FStar_Pervasives.delta_attr - ["Pulse.Lib.Core.unfold_check_opens"]] - inames)) + uu___17) (fun inames1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___18 + -> inames1)))) - uu___5))) + uu___17))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - Pulse_Syntax_Pure.tm_emp_inames)))) + uu___17 + -> + Pulse_Syntax_Pure.tm_emp_inames))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (365)) + (Prims.of_int (12)) + (Prims.of_int (373)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (381)) + (Prims.of_int (10)) + (Prims.of_int (385)) + (Prims.of_int (47))))) + (Obj.magic + uu___15) (fun inames_opened -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___16 + -> ((match c with | Pulse_Syntax_Base.C_STAtomic - (uu___6, + (uu___17, obs, st) -> Pulse_Syntax_Base.C_STAtomic (inames_opened, obs, st) | Pulse_Syntax_Base.C_STGhost - (uu___6, + (uu___17, st) -> Pulse_Syntax_Base.C_STGhost (inames_opened, st) - | uu___6 + | uu___17 -> c), (Pulse_Syntax_Naming.open_term_nv (Pulse_Syntax_Base.comp_pre @@ -3665,12 +4000,34 @@ let rec (check_abs_core : (Pulse_Syntax_Naming.open_term' (Pulse_Syntax_Base.comp_post c) var - Prims.int_one))))))) + Prims.int_one))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (351)) + (Prims.of_int (8)) + (Prims.of_int (385)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (349)) + (Prims.of_int (10)) + (Prims.of_int (434)) + (Prims.of_int (29))))) + (Obj.magic + uu___14) (fun - uu___5 -> + uu___15 + -> (fun - uu___5 -> - match uu___5 + uu___15 + -> + match uu___15 with | (elab_c, @@ -3679,6 +4036,11 @@ let rec (check_abs_core : ret_ty, post_hint_body) -> + let uu___16 + = + Pulse_Checker_Pure.check_slprop + g' + pre_opened in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3698,20 +4060,30 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (Pulse_Checker_Pure.check_slprop - g' - pre_opened)) + uu___16) (fun - uu___6 -> + uu___17 + -> (fun - uu___6 -> - match uu___6 + uu___17 + -> + match uu___17 with | Prims.Mkdtuple2 (pre_opened1, pre_typing) -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + Pulse_Syntax_Naming.close_term + pre_opened1 + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3730,52 +4102,41 @@ let rec (check_abs_core : (Prims.of_int (42)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Syntax_Naming.close_term - pre_opened1 - x)) + (Obj.magic + uu___18) (fun - uu___7 -> + uu___19 + -> (fun pre -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (390)) - (Prims.of_int (8)) - (Prims.of_int (403)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (404)) - (Prims.of_int (8)) - (Prims.of_int (434)) - (Prims.of_int (29))))) - (match post_hint_body + let uu___19 + = + match post_hint_body with | FStar_Pervasives_Native.None -> - Obj.magic - (Pulse_Typing_Env.fail_doc + Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) [ Pulse_PP.text - "Top-level functions must be annotated with pre and post conditions"]) + "Top-level functions must be annotated with pre and post conditions"] | FStar_Pervasives_Native.Some post -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___20 + = + Pulse_Checker_Base.intro_post_hint + (Pulse_Checker_Pure.push_context + "post_hint_typing" + range g') + (Pulse_Syntax_Base.effect_annot_of_comp + elab_c) + ret_ty + post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3793,26 +4154,50 @@ let rec (check_abs_core : (Prims.of_int (403)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Checker_Base.intro_post_hint - (Pulse_Checker_Pure.push_context - "post_hint_typing" - range g') - (Pulse_Syntax_Base.effect_annot_of_comp - elab_c) - ret_ty - post)) + uu___20) (fun post_hint_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___21 + -> FStar_Pervasives_Native.Some - post_hint_typing)))) + post_hint_typing)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (390)) + (Prims.of_int (8)) + (Prims.of_int (403)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (404)) + (Prims.of_int (8)) + (Prims.of_int (434)) + (Prims.of_int (29))))) + (Obj.magic + uu___19) (fun - uu___7 -> + uu___20 + -> (fun post -> + let uu___20 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_fret")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3831,16 +4216,21 @@ let rec (check_abs_core : (Prims.of_int (52)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_fret")) + (Obj.magic + uu___20) (fun - uu___7 -> + uu___21 + -> (fun ppname_ret -> + let uu___21 + = + check g' + pre_opened1 + () post + ppname_ret + body_opened in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3860,14 +4250,19 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (check g' - pre_opened1 - () post - ppname_ret - body_opened)) + uu___21) (fun - uu___7 -> + uu___22 + -> (fun r -> + let uu___22 + = + Pulse_Checker_Base.apply_checker_result_k + g' + pre_opened1 + (FStar_Pervasives_Native.__proj__Some__item__v + post) r + ppname_ret in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3887,17 +4282,14 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (Pulse_Checker_Base.apply_checker_result_k - g' - pre_opened1 - (FStar_Pervasives_Native.__proj__Some__item__v - post) r - ppname_ret)) + uu___22) (fun - uu___7 -> + uu___23 + -> (fun - uu___7 -> - match uu___7 + uu___23 + -> + match uu___23 with | FStar_Pervasives.Mkdtuple3 @@ -3905,6 +4297,14 @@ let rec (check_abs_core : c_body, body_typing) -> + let uu___24 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + uu___23)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3923,35 +4323,21 @@ let rec (check_abs_core : (Prims.of_int (68)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___7)) + (Obj.magic + uu___24) (fun - uu___8 -> + uu___25 + -> (fun - uu___8 -> + uu___25 + -> + let uu___26 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (411)) - (Prims.of_int (41)) - (Prims.of_int (411)) - (Prims.of_int (101))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Abs.fst" - (Prims.of_int (411)) - (Prims.of_int (106)) - (Prims.of_int (434)) - (Prims.of_int (29))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___27 + -> { Pulse_Syntax_Base.annotated = @@ -3961,22 +4347,17 @@ let rec (check_abs_core : (FStar_Pervasives_Native.Some (Pulse_Syntax_Naming.open_comp_nv elab_c px)) - })) - (fun - uu___9 -> - (fun - c_opened - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Abs.fst" - (Prims.of_int (415)) - (Prims.of_int (8)) - (Prims.of_int (419)) - (Prims.of_int (35))))) + (Prims.of_int (411)) + (Prims.of_int (41)) + (Prims.of_int (411)) + (Prims.of_int (101))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3986,7 +4367,23 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + (fun + c_opened + -> + let uu___27 + = + let uu___28 + = + sub_effect_comp + g' + body1.Pulse_Syntax_Base.range1 + c_opened + c_body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4004,18 +4401,15 @@ let rec (check_abs_core : (Prims.of_int (419)) (Prims.of_int (35))))) (Obj.magic - (sub_effect_comp - g' - body1.Pulse_Syntax_Base.range1 - c_opened - c_body)) + uu___28) (fun - uu___9 -> + uu___29 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___30 -> - match uu___9 + match uu___29 with | FStar_Pervasives_Native.None @@ -4036,18 +4430,48 @@ let rec (check_abs_core : c_body, c_body1, body_typing, - lift))))))) + lift))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (415)) + (Prims.of_int (8)) + (Prims.of_int (419)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Abs.fst" + (Prims.of_int (411)) + (Prims.of_int (106)) + (Prims.of_int (434)) + (Prims.of_int (29))))) + (Obj.magic + uu___27) (fun - uu___9 -> + uu___28 + -> (fun - uu___9 -> - match uu___9 + uu___28 + -> + match uu___28 with | Prims.Mkdtuple2 (c_body1, body_typing1) -> + let uu___29 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___30 + -> + uu___28)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4066,16 +4490,21 @@ let rec (check_abs_core : (Prims.of_int (8)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> uu___9)) + (Obj.magic + uu___29) (fun - uu___10 + uu___30 -> (fun - uu___10 + uu___30 -> + let uu___31 + = + check_effect_annotation + g' + body1.Pulse_Syntax_Base.range1 + c_opened + c_body1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4095,23 +4524,33 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (check_effect_annotation - g' - body1.Pulse_Syntax_Base.range1 - c_opened - c_body1)) + uu___31) (fun - uu___11 + uu___32 -> (fun - uu___11 + uu___32 -> - match uu___11 + match uu___32 with | Prims.Mkdtuple2 (c_body2, d_sub) -> + let uu___33 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___34 + -> + Pulse_Typing.T_Sub + (g', + body1, + c_body1, + c_body2, + body_typing1, + d_sub))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4130,23 +4569,21 @@ let rec (check_abs_core : (Prims.of_int (58)) (Prims.of_int (434)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Pulse_Typing.T_Sub - (g', - body1, - c_body1, - c_body2, - body_typing1, - d_sub))) + (Obj.magic + uu___33) (fun - uu___12 + uu___34 -> (fun body_typing2 -> + let uu___34 + = + maybe_rewrite_body_typing + g' body1 + c_body2 + body_typing2 + asc1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4166,19 +4603,15 @@ let rec (check_abs_core : (Prims.of_int (434)) (Prims.of_int (29))))) (Obj.magic - (maybe_rewrite_body_typing - g' body1 - c_body2 - body_typing2 - asc1)) + uu___34) (fun - uu___12 + uu___35 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___36 -> - match uu___12 + match uu___35 with | Prims.Mkdtuple2 @@ -4241,26 +4674,26 @@ let rec (check_abs_core : c_body3, (), body_typing3))))))) + uu___34))) + uu___32))) + uu___30))) + uu___28))) + uu___27))) + uu___25))) + uu___23))) + uu___22))) + uu___21))) + uu___20))) + uu___19))) + uu___17))) + uu___15))) + uu___13))) uu___12))) uu___11))) uu___10))) uu___9))) - uu___9))) - uu___8))) - uu___7))) - uu___7))) - uu___7))) - uu___7))) - uu___7))) - uu___6))) - uu___5))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) uu___3))) - uu___))) uu___) + uu___8))) uu___6))) + uu___2))) uu___1) let (check_abs : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -4273,6 +4706,7 @@ let (check_abs : fun g -> fun t -> fun check -> + let uu___ = preprocess_abs g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4284,6 +4718,6 @@ let (check_abs : (FStar_Range.mk_range "Pulse.Checker.Abs.fst" (Prims.of_int (439)) (Prims.of_int (2)) (Prims.of_int (439)) (Prims.of_int (26))))) - (Obj.magic (preprocess_abs g t)) - (fun uu___ -> - (fun t1 -> Obj.magic (check_abs_core g t1 check)) uu___) \ No newline at end of file + (Obj.magic uu___) + (fun uu___1 -> + (fun t1 -> Obj.magic (check_abs_core g t1 check)) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Admit.ml b/src/ocaml/plugin/generated/Pulse_Checker_Admit.ml index e59d6163d..bc3cb9f02 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Admit.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Admit.ml @@ -15,6 +15,9 @@ let (check : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> t)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -26,9 +29,15 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Admit.fst" (Prims.of_int (39)) (Prims.of_int (25)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> t)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun t0 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.push_context g "check_admit" + t.Pulse_Syntax_Base.range1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -43,12 +52,14 @@ let (check : "Pulse.Checker.Admit.fst" (Prims.of_int (40)) (Prims.of_int (66)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g - "check_admit" t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun g1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -67,20 +78,24 @@ let (check : (Prims.of_int (66)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | Pulse_Syntax_Base.Tm_Admit { Pulse_Syntax_Base.ctag = c; Pulse_Syntax_Base.u1 = - uu___1; + uu___4; Pulse_Syntax_Base.typ = t1; Pulse_Syntax_Base.post3 = post;_} -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -99,12 +114,16 @@ let (check : (Prims.of_int (20)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Typing_Env.fresh - g1)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun x -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 + -> + Pulse_Syntax_Base.v_as_nv + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -123,33 +142,14 @@ let (check : (Prims.of_int (23)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Base.v_as_nv - x)) - (fun uu___2 + (Obj.magic + uu___6) + (fun uu___7 -> (fun px -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (49)) - (Prims.of_int (6)) - (Prims.of_int (74)) - (Prims.of_int (85))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (75)) - (Prims.of_int (4)) - (Prims.of_int (96)) - (Prims.of_int (55))))) - (match + let uu___7 + = + match (post, post_hint) with @@ -157,59 +157,88 @@ let (check : (FStar_Pervasives_Native.None, FStar_Pervasives_Native.None) -> - Obj.magic - (Pulse_Typing_Env.fail + Pulse_Typing_Env.fail g1 FStar_Pervasives_Native.None - "could not find a post annotation on admit, please add one") + "could not find a post annotation on admit, please add one" | (FStar_Pervasives_Native.Some post1, FStar_Pervasives_Native.Some post2) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___8 + = + let uu___9 + = + Pulse_Syntax_Printer.term_to_string + post2.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (55)) - (Prims.of_int (10)) (Prims.of_int (57)) - (Prims.of_int (43))))) + (Prims.of_int (13)) + (Prims.of_int (57)) + (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (54)) - (Prims.of_int (8)) + (Prims.of_int (55)) + (Prims.of_int (10)) (Prims.of_int (57)) (Prims.of_int (43))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.term_to_string + post1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (57)) + (Prims.of_int (56)) (Prims.of_int (13)) - (Prims.of_int (57)) - (Prims.of_int (42))))) + (Prims.of_int (56)) + (Prims.of_int (37))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (55)) - (Prims.of_int (10)) - (Prims.of_int (57)) - (Prims.of_int (43))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - post2.Pulse_Typing.post)) + uu___12) (fun - uu___2 -> + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___14 + -> + fun x1 -> + Prims.strcat + (Prims.strcat + "found two post annotations on admit: " + (Prims.strcat + uu___13 + " and ")) + (Prims.strcat + x1 + ", please remove one"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -229,66 +258,56 @@ let (check : (Prims.of_int (57)) (Prims.of_int (43))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + uu___12 + uu___10)))) + uu___10) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (56)) - (Prims.of_int (13)) - (Prims.of_int (56)) - (Prims.of_int (37))))) + (Prims.of_int (55)) + (Prims.of_int (10)) + (Prims.of_int (57)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) + "Pulse.Checker.Admit.fst" + (Prims.of_int (54)) (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + (Prims.of_int (57)) + (Prims.of_int (43))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - post1)) + uu___8) (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x1 -> - Prims.strcat - (Prims.strcat - "found two post annotations on admit: " - (Prims.strcat - uu___3 - " and ")) - (Prims.strcat - x1 - ", please remove one"))))) + uu___9 -> (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun - uu___2 -> - (fun - uu___2 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g1 FStar_Pervasives_Native.None - uu___2)) - uu___2)) + uu___9)) + uu___9) | (FStar_Pervasives_Native.Some post1, - uu___2) + uu___8) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + Pulse_Checker_Pure.check_universe + g1 t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -306,19 +325,29 @@ let (check : (Prims.of_int (72)) (Prims.of_int (87))))) (Obj.magic - (Pulse_Checker_Pure.check_universe - g1 t1)) + uu___9) (fun - uu___3 -> + uu___10 + -> (fun - uu___3 -> - match uu___3 + uu___10 + -> + match uu___10 with | Prims.Mkdtuple2 (u, t_typing) -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Syntax_Naming.open_term_nv + post1 px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -337,16 +366,23 @@ let (check : (Prims.of_int (49)) (Prims.of_int (72)) (Prims.of_int (87))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Naming.open_term_nv - post1 px)) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> (fun post_opened -> + let uu___12 + = + Pulse_Checker_Pure.check_tot_term + (Pulse_Typing_Env.push_binding + g1 x + (FStar_Pervasives_Native.fst + px) t1) + post_opened + Pulse_Syntax_Pure.tm_slprop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -366,19 +402,15 @@ let (check : (Prims.of_int (72)) (Prims.of_int (87))))) (Obj.magic - (Pulse_Checker_Pure.check_tot_term - (Pulse_Typing_Env.push_binding - g1 x - (FStar_Pervasives_Native.fst - px) t1) - post_opened - Pulse_Syntax_Pure.tm_slprop)) + uu___12) (fun - uu___4 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___14 + -> + match uu___13 with | Prims.Mkdtuple2 @@ -540,20 +572,46 @@ let (check : x) }, x, (), (), ())))))))))) - uu___4))) - uu___3)) + uu___12))) + uu___10) | - (uu___2, + (uu___8, FStar_Pervasives_Native.Some post1) -> - Obj.magic - (Pulse_Typing_Combinators.comp_for_post_hint + Pulse_Typing_Combinators.comp_for_post_hint g pre () - post1 x)) + post1 x in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (49)) + (Prims.of_int (6)) + (Prims.of_int (74)) + (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (75)) + (Prims.of_int (4)) + (Prims.of_int (96)) + (Prims.of_int (55))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun res -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -572,20 +630,28 @@ let (check : (Prims.of_int (4)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - res)) + (Obj.magic + uu___8) (fun - uu___2 -> + uu___9 -> (fun - uu___2 -> - match uu___2 + uu___9 -> + match uu___9 with | Prims.Mkdtuple2 (c1, d_c) -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing.T_Admit + (g1, c1, + d_c))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -604,15 +670,17 @@ let (check : (Prims.of_int (2)) (Prims.of_int (96)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing.T_Admit - (g1, c1, - d_c))) + (Obj.magic + uu___10) (fun - uu___3 -> + uu___11 + -> (fun d -> + let uu___11 + = + Obj.magic + (FStar_Tactics_BreakVC.break_vc + ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -632,12 +700,17 @@ let (check : (Prims.of_int (96)) (Prims.of_int (55))))) (Obj.magic - (FStar_Tactics_BreakVC.break_vc - ())) + uu___11) (fun - uu___3 -> + uu___12 + -> (fun - uu___3 -> + uu___12 + -> + let uu___13 + = + FStar_Tactics_V2_Builtins.ide + () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -657,32 +730,19 @@ let (check : (Prims.of_int (96)) (Prims.of_int (55))))) (Obj.magic - (FStar_Tactics_V2_Builtins.ide - ())) + uu___13) (fun - uu___4 -> + uu___14 + -> (fun ide -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (82)) - (Prims.of_int (22)) - (Prims.of_int (82)) - (Prims.of_int (60))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (83)) - (Prims.of_int (2)) - (Prims.of_int (96)) - (Prims.of_int (55))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___14 + = + let uu___15 + = + FStar_Tactics_V2_Builtins.ext_getv + "pulse:no_admit_diag" in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -700,46 +760,61 @@ let (check : (Prims.of_int (82)) (Prims.of_int (60))))) (Obj.magic - (FStar_Tactics_V2_Builtins.ext_getv - "pulse:no_admit_diag")) + uu___15) (fun - uu___4 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - uu___4 = - "1")))) - (fun - uu___4 -> - (fun - no_admit_diag + uu___17 -> + uu___16 = + "1")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (83)) - (Prims.of_int (2)) - (Prims.of_int (95)) - (Prims.of_int (14))))) + (Prims.of_int (82)) + (Prims.of_int (22)) + (Prims.of_int (82)) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (96)) + (Prims.of_int (83)) (Prims.of_int (2)) (Prims.of_int (96)) (Prims.of_int (55))))) - (if + (Obj.magic + uu___14) + (fun + uu___15 + -> + (fun + no_admit_diag + -> + let uu___15 + = + if ide && (Prims.op_Negation no_admit_diag) then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___16 + = + FStar_Tactics_V2_Builtins.norm_well_typed_term + (Pulse_Typing.elab_env + g1) + [FStar_Pervasives.unascribe; + FStar_Pervasives.primops; + FStar_Pervasives.iota] + pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -757,73 +832,85 @@ let (check : (Prims.of_int (94)) (Prims.of_int (38))))) (Obj.magic - (FStar_Tactics_V2_Builtins.norm_well_typed_term - (Pulse_Typing.elab_env - g1) - [FStar_Pervasives.unascribe; - FStar_Pervasives.primops; - FStar_Pervasives.iota] - pre)) + uu___16) (fun - uu___4 -> + uu___17 + -> (fun pre1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (89)) - (Prims.of_int (14)) - (Prims.of_int (93)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Admit.fst" - (Prims.of_int (94)) - (Prims.of_int (4)) - (Prims.of_int (94)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___17 + = + let uu___18 + = + let uu___19 + = + let uu___20 + = + let uu___21 + = + let uu___22 + = + Pulse_Syntax_Pure.canon_slprop_print + pre1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (89)) - (Prims.of_int (14)) - (Prims.of_int (93)) - (Prims.of_int (5))))) + (Prims.of_int (92)) + (Prims.of_int (22)) + (Prims.of_int (92)) + (Prims.of_int (44))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (89)) - (Prims.of_int (14)) - (Prims.of_int (93)) - (Prims.of_int (5))))) + (Prims.of_int (92)) + (Prims.of_int (15)) + (Prims.of_int (92)) + (Prims.of_int (45))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___22) + (fun + uu___23 + -> + (fun + uu___23 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___23)) + uu___23) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (91)) - (Prims.of_int (6)) + (Prims.of_int (92)) + (Prims.of_int (15)) (Prims.of_int (92)) (Prims.of_int (45))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (89)) - (Prims.of_int (14)) - (Prims.of_int (93)) - (Prims.of_int (5))))) + (Prims.of_int (92)) + (Prims.of_int (8)) + (Prims.of_int (92)) + (Prims.of_int (45))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21) + (fun + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___23 + -> + Pulse_PP.indent + uu___22)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -841,85 +928,98 @@ let (check : (Prims.of_int (92)) (Prims.of_int (45))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___20) + (fun + uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "Current context:") + uu___21)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (92)) - (Prims.of_int (15)) + (Prims.of_int (91)) + (Prims.of_int (6)) (Prims.of_int (92)) (Prims.of_int (45))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (92)) - (Prims.of_int (8)) - (Prims.of_int (92)) - (Prims.of_int (45))))) + (Prims.of_int (89)) + (Prims.of_int (14)) + (Prims.of_int (93)) + (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + [uu___20])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (92)) - (Prims.of_int (22)) - (Prims.of_int (92)) - (Prims.of_int (44))))) + (Prims.of_int (89)) + (Prims.of_int (14)) + (Prims.of_int (93)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Admit.fst" - (Prims.of_int (92)) - (Prims.of_int (15)) - (Prims.of_int (92)) - (Prims.of_int (45))))) + (Prims.of_int (89)) + (Prims.of_int (14)) + (Prims.of_int (93)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre1)) - (fun - uu___4 -> + uu___18) (fun - uu___4 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___4)) - uu___4))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_PP.indent - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "Current context:") - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - [uu___4])))) - (fun - uu___4 -> + uu___19 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___20 + -> (Pulse_PP.text "Admitting continuation.") - :: uu___4)))) + :: + uu___19)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (89)) + (Prims.of_int (14)) + (Prims.of_int (93)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (94)) + (Prims.of_int (4)) + (Prims.of_int (94)) + (Prims.of_int (38))))) + (Obj.magic + uu___17) (fun - uu___4 -> + uu___18 + -> (fun msg -> Obj.magic @@ -928,19 +1028,41 @@ let (check : (FStar_Pervasives_Native.Some (t0.Pulse_Syntax_Base.range1)) msg)) - uu___4))) - uu___4))) + uu___18))) + uu___17))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - ())))) + uu___17 + -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (83)) + (Prims.of_int (2)) + (Prims.of_int (95)) + (Prims.of_int (14))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Admit.fst" + (Prims.of_int (96)) + (Prims.of_int (2)) + (Prims.of_int (96)) + (Prims.of_int (55))))) + (Obj.magic + uu___15) (fun - uu___4 -> + uu___16 + -> (fun - uu___4 -> + uu___16 + -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing g pre @@ -970,13 +1092,13 @@ let (check : })), c1, d)) res_ppname)) - uu___4))) - uu___4))) - uu___4))) - uu___3))) - uu___3))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) uu___))) - uu___))) uu___) \ No newline at end of file + uu___16))) + uu___15))) + uu___14))) + uu___12))) + uu___11))) + uu___9))) + uu___8))) + uu___7))) + uu___6))) uu___3))) + uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_AssertWithBinders.ml b/src/ocaml/plugin/generated/Pulse_Checker_AssertWithBinders.ml index 0794ec79d..db7d37b54 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_AssertWithBinders.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_AssertWithBinders.ml @@ -57,7 +57,12 @@ let rec (refl_abs_binders : | FStar_Reflection_V2_Data.Tv_Abs (b, body) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + FStar_Reflection_V2_Builtins.inspect_binder b)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -70,15 +75,13 @@ let rec (refl_abs_binders : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (50)) (Prims.of_int (20)) (Prims.of_int (53)) (Prims.of_int (75))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_Reflection_V2_Builtins.inspect_binder b)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | { FStar_Reflection_V2_Data.sort2 = sort; - FStar_Reflection_V2_Data.qual = uu___1; - FStar_Reflection_V2_Data.attrs = uu___2; + FStar_Reflection_V2_Data.qual = uu___2; + FStar_Reflection_V2_Data.attrs = uu___3; FStar_Reflection_V2_Data.ppname2 = ppname;_} -> Obj.magic @@ -87,7 +90,7 @@ let rec (refl_abs_binders : sort (Pulse_Syntax_Base.mk_ppname ppname (Pulse_RuntimeUtils.range_of_term - t))) :: acc))) uu___))) + t))) :: acc))) uu___1))) | uu___ -> Obj.magic (Obj.repr @@ -115,7 +118,12 @@ let (infer_binder_types : | uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_RuntimeUtils.range_of_term v)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -128,11 +136,15 @@ let (infer_binder_types : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (61)) (Prims.of_int (53)) (Prims.of_int (81)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.range_of_term v)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun v_rng -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.push_context g + "infer_binder_types" v_rng)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -151,12 +163,28 @@ let (infer_binder_types : (Prims.of_int (56)) (Prims.of_int (81)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_context g - "infer_binder_types" v_rng)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun g1 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + fun b -> + FStar_Reflection_V2_Builtins.pack_binder + { + FStar_Reflection_V2_Data.sort2 + = + (b.Pulse_Syntax_Base.binder_ty); + FStar_Reflection_V2_Data.qual + = + FStar_Reflection_V2_Data.Q_Explicit; + FStar_Reflection_V2_Data.attrs + = []; + FStar_Reflection_V2_Data.ppname2 + = + ((b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -175,25 +203,21 @@ let (infer_binder_types : (Prims.of_int (6)) (Prims.of_int (81)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - fun b -> - FStar_Reflection_V2_Builtins.pack_binder - { - FStar_Reflection_V2_Data.sort2 - = - (b.Pulse_Syntax_Base.binder_ty); - FStar_Reflection_V2_Data.qual - = - FStar_Reflection_V2_Data.Q_Explicit; - FStar_Reflection_V2_Data.attrs - = []; - FStar_Reflection_V2_Data.ppname2 - = - ((b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name) - })) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun as_binder -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_List_Tot_Base.fold_right + (fun b -> + fun tv -> + FStar_Reflection_V2_Builtins.pack_ln + (FStar_Reflection_V2_Data.Tv_Abs + ((as_binder + b), tv))) + bs v)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -212,21 +236,19 @@ let (infer_binder_types : (Prims.of_int (6)) (Prims.of_int (81)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_List_Tot_Base.fold_right - ( - fun b -> - fun tv -> - FStar_Reflection_V2_Builtins.pack_ln - (FStar_Reflection_V2_Data.Tv_Abs - ((as_binder - b), tv))) - bs v)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun abstraction -> + let uu___5 + = + Pulse_Checker_Pure.instantiate_term_implicits + g1 + (Pulse_Syntax_Pure.wr + abstraction + v_rng) + FStar_Pervasives_Native.None in Obj.magic ( FStar_Tactics_Effect.tac_bind @@ -247,30 +269,25 @@ let (infer_binder_types : (Prims.of_int (81)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g1 - (Pulse_Syntax_Pure.wr - abstraction - v_rng) - FStar_Pervasives_Native.None)) + uu___5) (fun - uu___1 -> + uu___6 -> (fun - uu___1 -> - match uu___1 + uu___6 -> + match uu___6 with | (inst_abstraction, - uu___2) + uu___7) -> Obj.magic (refl_abs_binders inst_abstraction [])) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___1)))) uu___2 uu___1 uu___ + uu___6))) + uu___5))) + uu___4))) uu___3))) + uu___2)))) uu___2 uu___1 uu___ let rec (open_binders : Pulse_Typing_Env.env -> Pulse_Syntax_Base.binder Prims.list -> @@ -302,7 +319,11 @@ let rec (open_binders : | b::bs1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Pulse_Checker_Pure.check_universe + (Pulse_Typing_Env.push_env g uvs) + b.Pulse_Syntax_Base.binder_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -319,12 +340,16 @@ let rec (open_binders : (Prims.of_int (61)) (Prims.of_int (98)) (Prims.of_int (77))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - (Pulse_Typing_Env.push_env g uvs) - b.Pulse_Syntax_Base.binder_ty)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env + g uvs))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -343,13 +368,23 @@ let rec (open_binders : (Prims.of_int (37)) (Prims.of_int (98)) (Prims.of_int (77))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env - g uvs))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun x -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + [FStar_Reflection_Typing.DT + (Prims.int_zero, + (Pulse_Syntax_Pure.tm_var + { + Pulse_Syntax_Base.nm_index + = x; + Pulse_Syntax_Base.nm_ppname + = + (b.Pulse_Syntax_Base.binder_ppname) + }))])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -368,21 +403,22 @@ let rec (open_binders : (Prims.of_int (75)) (Prims.of_int (98)) (Prims.of_int (77))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - [FStar_Reflection_Typing.DT - (Prims.int_zero, - ( - Pulse_Syntax_Pure.tm_var - { - Pulse_Syntax_Base.nm_index - = x; - Pulse_Syntax_Base.nm_ppname - = - (b.Pulse_Syntax_Base.binder_ppname) - }))])) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun ss -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___5 -> + FStar_List_Tot_Base.mapi + (fun i -> + fun b1 -> + Pulse_Syntax_Naming.subst_binder + b1 + (Pulse_Syntax_Naming.shift_subst_n + i ss)) + bs1)) in Obj.magic (FStar_Tactics_Effect.tac_bind ( @@ -404,22 +440,24 @@ let rec (open_binders : (Prims.of_int (98)) (Prims.of_int (77))))) ( - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - FStar_List_Tot_Base.mapi - (fun i -> - fun b1 -> - Pulse_Syntax_Naming.subst_binder - b1 - (Pulse_Syntax_Naming.shift_subst_n - i ss)) - bs1)) + Obj.magic + uu___4) ( fun - uu___1 -> + uu___5 -> (fun bs2 -> + let uu___5 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___6 -> + Pulse_Syntax_Naming.subst_term + v + (Pulse_Syntax_Naming.shift_subst_n + (FStar_List_Tot_Base.length + bs2) ss))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -438,18 +476,23 @@ let rec (open_binders : (Prims.of_int (60)) (Prims.of_int (98)) (Prims.of_int (77))))) + (Obj.magic + uu___5) + (fun + uu___6 -> + (fun v1 + -> + let uu___6 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> - Pulse_Syntax_Naming.subst_term - v + uu___7 -> + Pulse_Syntax_Naming.subst_st_term + body (Pulse_Syntax_Naming.shift_subst_n (FStar_List_Tot_Base.length - bs2) ss))) - (fun - uu___1 -> - (fun v1 - -> + bs2) ss))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -468,16 +511,10 @@ let rec (open_binders : (Prims.of_int (4)) (Prims.of_int (98)) (Prims.of_int (77))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - Pulse_Syntax_Naming.subst_st_term - body - (Pulse_Syntax_Naming.shift_subst_n - (FStar_List_Tot_Base.length - bs2) ss))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun body1 -> Obj.magic @@ -488,12 +525,12 @@ let rec (open_binders : b.Pulse_Syntax_Base.binder_ppname b.Pulse_Syntax_Base.binder_ty) v1 body1)) - uu___1))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) uu___)))) uu___4 - uu___3 uu___2 uu___1 uu___ + uu___7))) + uu___6))) + uu___5))) + uu___4))) + uu___3))) uu___1)))) + uu___4 uu___3 uu___2 uu___1 uu___ let (closing : (Pulse_Syntax_Base.ppname * Pulse_Syntax_Base.var * Pulse_Syntax_Base.typ) Prims.list -> Pulse_Syntax_Naming.subst) @@ -535,6 +572,10 @@ let (unfold_all : fun g -> fun names -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -546,10 +587,14 @@ let (unfold_all : (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (120)) (Prims.of_int (26)) (Prims.of_int (122)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun rg -> + let uu___1 = + FStar_Tactics_V2_Builtins.norm_term_env rg + [FStar_Pervasives.primops; + FStar_Pervasives.iota; + FStar_Pervasives.delta_only names] t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -564,14 +609,10 @@ let (unfold_all : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (121)) (Prims.of_int (8)) (Prims.of_int (121)) (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_term_env rg - [FStar_Pervasives.primops; - FStar_Pervasives.iota; - FStar_Pervasives.delta_only names] t)) + (Obj.magic uu___1) (fun t1 -> - FStar_Tactics_Effect.lift_div_tac (fun uu___ -> t1)))) - uu___) + FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> t1)))) + uu___1) let (def_of_fv : FStar_Reflection_Types.env -> FStar_Reflection_Types.fv -> @@ -622,6 +663,10 @@ let (unfold_head : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -632,11 +677,10 @@ let (unfold_head : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (148)) (Prims.of_int (4)) (Prims.of_int (168)) - (Prims.of_int (89))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Prims.of_int (89))))) (Obj.magic uu___) + (fun uu___1 -> (fun rg -> + let uu___1 = FStar_Tactics_V2_SyntaxHelpers.hua t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -651,11 +695,19 @@ let (unfold_head : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (148)) (Prims.of_int (4)) (Prims.of_int (168)) (Prims.of_int (89))))) - (Obj.magic (FStar_Tactics_V2_SyntaxHelpers.hua t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives_Native.Some (fv, u, args) -> + let uu___3 = + FStar_Tactics_V2_Builtins.norm_term_env rg + [FStar_Pervasives.hnf; + FStar_Pervasives.zeta; + FStar_Pervasives.delta_only + [FStar_Reflection_V2_Builtins.implode_qn + (FStar_Reflection_V2_Builtins.inspect_fv + fv)]] t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -674,19 +726,37 @@ let (unfold_head : (Prims.of_int (10)) (Prims.of_int (152)) (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_term_env - rg - [FStar_Pervasives.hnf; - FStar_Pervasives.zeta; - FStar_Pervasives.delta_only - [FStar_Reflection_V2_Builtins.implode_qn - (FStar_Reflection_V2_Builtins.inspect_fv - fv)]] t)) + (Obj.magic uu___3) (fun t1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> t1))) + (fun uu___4 -> t1))) | FStar_Pervasives_Native.None -> + let uu___3 = + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (168)) + (Prims.of_int (68)) + (Prims.of_int (168)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat "Cannot unfold " + (Prims.strcat uu___5 + ", the head is not an fvar"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -705,41 +775,15 @@ let (unfold_head : (Prims.of_int (6)) (Prims.of_int (168)) (Prims.of_int (89))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (168)) - (Prims.of_int (68)) - (Prims.of_int (168)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "Cannot unfold " - (Prims.strcat uu___1 - ", the head is not an fvar"))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term - t)) uu___1)) uu___1))) - uu___))) uu___) + t)) uu___4)) uu___4))) + uu___2))) uu___1) let (unfold_defs : Pulse_Typing_Env.env -> Prims.string Prims.list FStar_Pervasives_Native.option -> @@ -749,6 +793,7 @@ let (unfold_defs : fun g -> fun defs -> fun t -> + let uu___ = unfold_head g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -760,9 +805,18 @@ let (unfold_defs : (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (172)) (Prims.of_int (30)) (Prims.of_int (179)) (Prims.of_int (5))))) - (Obj.magic (unfold_head g t)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun t1 -> + let uu___1 = + match defs with + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t1))) + | FStar_Pervasives_Native.Some defs1 -> + Obj.magic (Obj.repr (unfold_all g defs1 t1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -777,16 +831,15 @@ let (unfold_defs : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (177)) (Prims.of_int (6)) (Prims.of_int (179)) (Prims.of_int (5))))) - (match defs with - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t1))) - | FStar_Pervasives_Native.Some defs1 -> - Obj.magic (Obj.repr (unfold_all g defs1 t1))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun t2 -> + let uu___2 = + FStar_Tactics_V2_Builtins.norm_term_env + (Pulse_Typing.elab_env g) + [FStar_Pervasives.hnf; + FStar_Pervasives.iota; + FStar_Pervasives.primops] t2 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -805,15 +858,10 @@ let (unfold_defs : (Prims.of_int (8)) (Prims.of_int (178)) (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_term_env - (Pulse_Typing.elab_env g) - [FStar_Pervasives.hnf; - FStar_Pervasives.iota; - FStar_Pervasives.primops] t2)) + (Obj.magic uu___2) (fun t3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t3)))) uu___))) uu___) + (fun uu___3 -> t3)))) uu___2))) uu___1) let (check_unfoldable : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> (unit, unit) FStar_Tactics_Effect.tac_repr) @@ -830,7 +878,29 @@ let (check_unfoldable : | uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + let uu___2 = Pulse_Syntax_Printer.term_to_string v in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (189)) (Prims.of_int (24)) + (Prims.of_int (189)) (Prims.of_int (44))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat + "`fold` and `unfold` expect a single user-defined predicate as an argument, but " + (Prims.strcat uu___3 + " is a primitive term that cannot be folded or unfolded"))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -843,39 +913,14 @@ let (check_unfoldable : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (185)) (Prims.of_int (3)) (Prims.of_int (189)) (Prims.of_int (45))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (189)) - (Prims.of_int (24)) - (Prims.of_int (189)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string v)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "`fold` and `unfold` expect a single user-defined predicate as an argument, but " - (Prims.strcat uu___1 - " is a primitive term that cannot be folded or unfolded"))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term v)) - uu___1)) uu___1)))) uu___1 uu___ + uu___2)) uu___2)))) uu___1 uu___ let (visit_and_rewrite : (FStar_Reflection_Types.term * FStar_Reflection_Types.term) -> Pulse_Syntax_Base.term -> @@ -883,6 +928,8 @@ let (visit_and_rewrite : = fun p -> fun t -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> p)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -894,11 +941,26 @@ let (visit_and_rewrite : (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (192)) (Prims.of_int (37)) (Prims.of_int (203)) (Prims.of_int (47))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> p)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (lhs, rhs) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + fun uu___3 -> + (fun uu___3 -> + fun t1 -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + if + FStar_Reflection_TermEq.term_eq + t1 lhs + then rhs + else t1))) uu___4 uu___3)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -913,20 +975,8 @@ let (visit_and_rewrite : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (197)) (Prims.of_int (2)) (Prims.of_int (203)) (Prims.of_int (47))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun uu___1 -> - (fun uu___1 -> - fun t1 -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - if - FStar_Reflection_TermEq.term_eq - t1 lhs - then rhs - else t1))) uu___2 uu___1)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun visitor -> match FStar_Reflection_V2_Builtins.inspect_ln lhs @@ -935,7 +985,7 @@ let (visit_and_rewrite : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___3 -> Pulse_Syntax_Naming.subst_term t [FStar_Reflection_Typing.NT (((FStar_Reflection_V2_Builtins.inspect_namedv @@ -943,11 +993,11 @@ let (visit_and_rewrite : (Pulse_Syntax_Pure.wr rhs (Pulse_RuntimeUtils.range_of_term t)))]))) - | uu___1 -> + | uu___3 -> Obj.magic (Obj.repr (FStar_Tactics_Visit.visit_tm visitor t))) - uu___1))) uu___) + uu___3))) uu___1) let (visit_and_rewrite_conjuncts : (FStar_Reflection_Types.term * FStar_Reflection_Types.term) -> Pulse_Syntax_Base.term Prims.list -> @@ -961,6 +1011,10 @@ let (visit_and_rewrite_conjuncts_all : = fun p -> fun goal -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Syntax_Pure.slprop_as_list goal)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -972,10 +1026,13 @@ let (visit_and_rewrite_conjuncts_all : (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (209)) (Prims.of_int (34)) (Prims.of_int (220)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Pure.slprop_as_list goal)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun tms -> + let uu___1 = + FStar_Tactics_Util.fold_left + (fun tms1 -> fun p1 -> visit_and_rewrite_conjuncts p1 tms1) + tms p in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -990,13 +1047,30 @@ let (visit_and_rewrite_conjuncts_all : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (211)) (Prims.of_int (41)) (Prims.of_int (220)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Util.fold_left - (fun tms1 -> - fun p1 -> visit_and_rewrite_conjuncts p1 tms1) - tms p)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun tms' -> + let uu___2 = + FStar_Tactics_Util.fold_left2 + (fun uu___5 -> + fun uu___4 -> + fun uu___3 -> + (fun uu___3 -> + fun t -> + fun t' -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + match uu___3 with + | (lhs, rhs) -> + if + Pulse_Syntax_Base.eq_tm + t t' + then (lhs, rhs) + else + ((t :: lhs), (t' :: + rhs))))) uu___5 + uu___4 uu___3) ([], []) tms tms' in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1015,38 +1089,16 @@ let (visit_and_rewrite_conjuncts_all : (Prims.of_int (41)) (Prims.of_int (220)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Util.fold_left2 - (fun uu___2 -> - fun uu___1 -> - fun uu___ -> - (fun uu___ -> - fun t -> - fun t' -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (lhs, rhs) -> - if - Pulse_Syntax_Base.eq_tm - t t' - then (lhs, rhs) - else - ((t :: lhs), - (t' :: - rhs))))) - uu___2 uu___1 uu___) ([], []) - tms tms')) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___4 -> + match uu___3 with | (lhs, rhs) -> ((Pulse_Syntax_Pure.list_as_slprop lhs), (Pulse_Syntax_Pure.list_as_slprop - rhs)))))) uu___))) uu___) + rhs)))))) uu___2))) uu___1) let (disjoint : Pulse_Syntax_Base.var Prims.list -> Pulse_Syntax_Base.var FStar_Set.set -> Prims.bool) @@ -1106,123 +1158,128 @@ let (rewrite_all : | uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (256)) (Prims.of_int (6)) - (Prims.of_int (260)) (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (261)) (Prims.of_int (6)) - (Prims.of_int (264)) (Prims.of_int (12))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun uu___1 -> - match uu___1 with - | (e1, e2) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (258)) - (Prims.of_int (10)) - (Prims.of_int (258)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (258)) - (Prims.of_int (10)) - (Prims.of_int (259)) - (Prims.of_int (73))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + FStar_Tactics_Util.map + (fun uu___2 -> + match uu___2 with + | (e1, e2) -> + let uu___3 = + let uu___4 = + Pulse_Checker_Pure.instantiate_term_implicits + g e1 FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (258)) + (Prims.of_int (15)) + (Prims.of_int (258)) + (Prims.of_int (72))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (258)) + (Prims.of_int (10)) + (Prims.of_int (258)) + (Prims.of_int (73))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pervasives_Native.fst + uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (258)) + (Prims.of_int (10)) + (Prims.of_int (258)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (258)) + (Prims.of_int (10)) + (Prims.of_int (259)) + (Prims.of_int (73))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + Pulse_Checker_Pure.instantiate_term_implicits + g e2 + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (258)) + (Prims.of_int (259)) (Prims.of_int (15)) - (Prims.of_int (258)) + (Prims.of_int (259)) (Prims.of_int (72))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (258)) + (Prims.of_int (259)) (Prims.of_int (10)) - (Prims.of_int (258)) + (Prims.of_int (259)) (Prims.of_int (73))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g e1 - FStar_Pervasives_Native.None)) - (fun uu___2 -> + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___8 -> FStar_Pervasives_Native.fst - uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (259)) - (Prims.of_int (10)) - (Prims.of_int (259)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (258)) - (Prims.of_int (10)) - (Prims.of_int (259)) - (Prims.of_int (73))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (259)) - (Prims.of_int (15)) - (Prims.of_int (259)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (259)) - (Prims.of_int (10)) - (Prims.of_int (259)) - (Prims.of_int (73))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g e2 - FStar_Pervasives_Native.None)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - FStar_Pervasives_Native.fst - uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - (uu___2, uu___3))))) - uu___2)) p)) - (fun uu___1 -> + uu___7)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (259)) + (Prims.of_int (10)) + (Prims.of_int (259)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (258)) + (Prims.of_int (10)) + (Prims.of_int (259)) + (Prims.of_int (73))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + (uu___4, uu___6))))) + uu___4)) p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (256)) (Prims.of_int (6)) + (Prims.of_int (260)) (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (261)) (Prims.of_int (6)) + (Prims.of_int (264)) (Prims.of_int (12))))) + (Obj.magic uu___1) + (fun uu___2 -> (fun p1 -> + let uu___2 = + visit_and_rewrite_conjuncts_all p1 t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1241,79 +1298,43 @@ let (rewrite_all : (Prims.of_int (6)) (Prims.of_int (264)) (Prims.of_int (12))))) - (Obj.magic - (visit_and_rewrite_conjuncts_all p1 - t)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | (lhs, rhs) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (263)) - (Prims.of_int (4)) - (Prims.of_int (263)) - (Prims.of_int (106))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (264)) - (Prims.of_int (4)) - (Prims.of_int (264)) - (Prims.of_int (12))))) - (Obj.magic - (debug_log g - (fun uu___2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (263)) - (Prims.of_int (83)) - (Prims.of_int (263)) - (Prims.of_int (105))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (263)) - (Prims.of_int (26)) - (Prims.of_int (263)) - (Prims.of_int (105))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - rhs)) - (fun uu___3 - -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (263)) - (Prims.of_int (26)) - (Prims.of_int (263)) - (Prims.of_int (105))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (263)) - (Prims.of_int (26)) - (Prims.of_int (263)) - (Prims.of_int (105))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___4 = + debug_log g + (fun uu___5 -> + let uu___6 = + Pulse_Syntax_Printer.term_to_string + rhs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (263)) + (Prims.of_int (83)) + (Prims.of_int (263)) + (Prims.of_int (105))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (263)) + (Prims.of_int (26)) + (Prims.of_int (263)) + (Prims.of_int (105))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + Pulse_Syntax_Printer.term_to_string + lhs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" @@ -1321,7 +1342,7 @@ let (rewrite_all : (Prims.of_int (60)) (Prims.of_int (263)) (Prims.of_int (82))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "FStar.Printf.fst" @@ -1329,36 +1350,81 @@ let (rewrite_all : (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - lhs)) - (fun - uu___4 -> + (Obj.magic + uu___9) + (fun + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___11 + -> fun x -> Prims.strcat (Prims.strcat "Rewrote " (Prims.strcat - uu___4 + uu___10 " to ")) (Prims.strcat - x ""))))) - (fun - uu___4 -> + x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + ( + FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (263)) + (Prims.of_int (26)) + (Prims.of_int (263)) + (Prims.of_int (105))))) + ( + FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (263)) + (Prims.of_int (26)) + (Prims.of_int (263)) + (Prims.of_int (105))))) + ( + Obj.magic + uu___8) + ( + fun + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - uu___4 - uu___3)))) - uu___3)))) - (fun uu___2 -> + uu___10 + -> + uu___9 + uu___7)))) + uu___7)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (263)) + (Prims.of_int (4)) + (Prims.of_int (263)) + (Prims.of_int (106))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (264)) + (Prims.of_int (4)) + (Prims.of_int (264)) + (Prims.of_int (12))))) + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___6 -> (lhs, rhs))))) - uu___1))) uu___1)))) uu___2 uu___1 + uu___3))) uu___2)))) uu___2 uu___1 uu___ let (check_renaming : Pulse_Typing_Env.env -> @@ -1369,6 +1435,10 @@ let (check_renaming : fun g -> fun pre -> fun st -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> st.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1379,13 +1449,14 @@ let (check_renaming : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (275)) Prims.int_one (Prims.of_int (301)) - (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_ProofHintWithBinders ht -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> ht)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1400,11 +1471,10 @@ let (check_renaming : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (275)) (Prims.of_int (45)) (Prims.of_int (301)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ht)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | { Pulse_Syntax_Base.hint_type = Pulse_Syntax_Base.RENAME @@ -1414,7 +1484,7 @@ let (check_renaming : Pulse_Syntax_Base.binders = bs; Pulse_Syntax_Base.t = body;_} -> (match (bs, goal) with - | (uu___2::uu___3, + | (uu___4::uu___5, FStar_Pervasives_Native.None) -> Obj.magic (Obj.repr @@ -1422,12 +1492,12 @@ let (check_renaming : (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) "A renaming with binders must have a goal (with xs. rename ... in goal)")) - | (uu___2::uu___3, + | (uu___4::uu___5, FStar_Pervasives_Native.Some goal1) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> + (fun uu___6 -> { Pulse_Syntax_Base.term1 = @@ -1476,7 +1546,9 @@ let (check_renaming : | ([], FStar_Pervasives_Native.None) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + rewrite_all g pairs pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1493,12 +1565,11 @@ let (check_renaming : (Prims.of_int (15)) (Prims.of_int (294)) (Prims.of_int (77))))) - (Obj.magic - (rewrite_all g pairs pre)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with + (fun uu___6 -> + match uu___5 with | (lhs, rhs) -> { Pulse_Syntax_Base.term1 @@ -1544,7 +1615,11 @@ let (check_renaming : goal1) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + Pulse_Checker_Pure.instantiate_term_implicits + g goal1 + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1561,14 +1636,14 @@ let (check_renaming : (Prims.of_int (21)) (Prims.of_int (301)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g goal1 - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with - | (goal2, uu___3) -> + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with + | (goal2, uu___6) -> + let uu___7 = + rewrite_all g + pairs goal2 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1588,15 +1663,13 @@ let (check_renaming : (Prims.of_int (300)) (Prims.of_int (79))))) (Obj.magic - (rewrite_all - g pairs - goal2)) - (fun uu___4 -> + uu___7) + (fun uu___8 -> FStar_Tactics_Effect.lift_div_tac ( fun - uu___5 -> - match uu___4 + uu___9 -> + match uu___8 with | (lhs, @@ -1641,8 +1714,8 @@ let (check_renaming : = (st.Pulse_Syntax_Base.effect_tag) })))) - uu___2))))) uu___1))) - uu___) + uu___5))))) uu___3))) + uu___1) let (check_wild : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1652,6 +1725,10 @@ let (check_wild : fun g -> fun pre -> fun st -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> st.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1662,13 +1739,14 @@ let (check_wild : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (308)) Prims.int_one (Prims.of_int (349)) - (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (23))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_ProofHintWithBinders ht -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> ht)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1683,12 +1761,11 @@ let (check_wild : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (309)) (Prims.of_int (22)) (Prims.of_int (349)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ht)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with - | { Pulse_Syntax_Base.hint_type = uu___2; + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with + | { Pulse_Syntax_Base.hint_type = uu___4; Pulse_Syntax_Base.binders = bs; Pulse_Syntax_Base.t = body;_} -> (match bs with @@ -1698,7 +1775,13 @@ let (check_wild : (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) "A wildcard must have at least one binder") - | uu___3 -> + | uu___5 -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Pulse_Syntax_Pure.slprop_as_list + pre)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1717,12 +1800,20 @@ let (check_wild : (Prims.of_int (39)) (Prims.of_int (349)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Pulse_Syntax_Pure.slprop_as_list - pre)) - (fun uu___4 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun slprops -> + let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_List_Tot_Base.partition + (fun v -> + Pulse_Syntax_Pure.uu___is_Tm_ExistsSL + ( + Pulse_Syntax_Pure.inspect_term + v)) + slprops)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1741,79 +1832,89 @@ let (check_wild : (Prims.of_int (39)) (Prims.of_int (349)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_List_Tot_Base.partition - (fun v -> - Pulse_Syntax_Pure.uu___is_Tm_ExistsSL - (Pulse_Syntax_Pure.inspect_term - v)) - slprops)) - (fun uu___4 -> - (fun uu___4 -> - match uu___4 + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + match uu___8 with | (ex, rest) -> (match ex with | [] -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (6)) - (Prims.of_int (327)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + let uu___10 + = + let uu___11 + = + let uu___12 + = + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Pure.canon_slprop_print + pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (24)) + (Prims.of_int (326)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (17)) + (Prims.of_int (326)) + (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + (fun + uu___15 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___15)) + uu___15) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (325)) - (Prims.of_int (8)) + (Prims.of_int (326)) + (Prims.of_int (17)) (Prims.of_int (326)) (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (10)) + (Prims.of_int (326)) + (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_PP.indent + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1831,97 +1932,75 @@ let (check_wild : (Prims.of_int (326)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "The context was:") + uu___13)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (17)) + (Prims.of_int (325)) + (Prims.of_int (8)) (Prims.of_int (326)) (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (10)) - (Prims.of_int (326)) - (Prims.of_int (47))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + [uu___12])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (24)) - (Prims.of_int (326)) - (Prims.of_int (46))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (17)) - (Prims.of_int (326)) - (Prims.of_int (47))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre)) - (fun - uu___5 -> + uu___10) (fun - uu___5 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___5)) - uu___5))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_PP.indent - uu___5)))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "The context was:") - uu___5)))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - [uu___5])))) - (fun - uu___5 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___12 + -> (Pulse_PP.text "Binding names with a wildcard requires exactly one existential quantifier in the goal.") - :: uu___5)))) - (fun - uu___5 -> - (fun - uu___5 -> - Obj.magic - (Pulse_Typing_Env.fail_doc - g - (FStar_Pervasives_Native.Some - (st.Pulse_Syntax_Base.range1)) - uu___5)) - uu___5)) - | - uu___5::uu___6::uu___7 - -> + :: + uu___11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1941,43 +2020,96 @@ let (check_wild : (Prims.of_int (327)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + Obj.magic + (Pulse_Typing_Env.fail_doc + g + (FStar_Pervasives_Native.Some + (st.Pulse_Syntax_Base.range1)) + uu___10)) + uu___10)) + | + uu___9::uu___10::uu___11 + -> + let uu___12 + = + let uu___13 + = + let uu___14 + = + let uu___15 + = + let uu___16 + = + let uu___17 + = + Pulse_Syntax_Pure.canon_slprop_print + pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (24)) + (Prims.of_int (326)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (17)) + (Prims.of_int (326)) + (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___17) + (fun + uu___18 + -> + (fun + uu___18 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___18)) + uu___18) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (325)) - (Prims.of_int (8)) + (Prims.of_int (326)) + (Prims.of_int (17)) (Prims.of_int (326)) (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (323)) - (Prims.of_int (33)) - (Prims.of_int (327)) - (Prims.of_int (7))))) + (Prims.of_int (326)) + (Prims.of_int (10)) + (Prims.of_int (326)) + (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_PP.indent + uu___17)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1995,96 +2127,119 @@ let (check_wild : (Prims.of_int (326)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "The context was:") + uu___16)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (17)) + (Prims.of_int (325)) + (Prims.of_int (8)) (Prims.of_int (326)) (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (10)) - (Prims.of_int (326)) - (Prims.of_int (47))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + [uu___15])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (24)) - (Prims.of_int (326)) - (Prims.of_int (46))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (326)) - (Prims.of_int (17)) - (Prims.of_int (326)) - (Prims.of_int (47))))) + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre)) - (fun - uu___8 -> - (fun - uu___8 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___8)) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Pulse_PP.indent - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "The context was:") - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - [uu___8])))) + uu___13) (fun - uu___8 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___15 + -> (Pulse_PP.text "Binding names with a wildcard requires exactly one existential quantifier in the goal.") - :: uu___8)))) + :: + uu___14)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (323)) + (Prims.of_int (33)) + (Prims.of_int (327)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (323)) + (Prims.of_int (6)) + (Prims.of_int (327)) + (Prims.of_int (7))))) + (Obj.magic + uu___12) (fun - uu___8 -> + uu___13 + -> (fun - uu___8 -> + uu___13 + -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) - uu___8)) - uu___8)) + uu___13)) + uu___13)) | ex1::[] -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + FStar_List_Tot_Base.length + bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2103,17 +2258,15 @@ let (check_wild : (Prims.of_int (35)) (Prims.of_int (349)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_List_Tot_Base.length - bs)) + (Obj.magic + uu___9) (fun - uu___5 -> + uu___10 + -> (fun k -> let rec peel_binders - uu___6 - uu___5 = + uu___11 + uu___10 = (fun n -> fun t -> if @@ -2124,7 +2277,8 @@ let (check_wild : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___10 + -> { Pulse_Syntax_Base.term1 = @@ -2167,84 +2321,26 @@ let (check_wild : Prims.int_one) body1 | - uu___6 -> + uu___11 + -> + let uu___12 + = + let uu___13 + = + let uu___14 + = + let uu___15 + = + let uu___16 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + ex1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (341)) - (Prims.of_int (39)) - (Prims.of_int (346)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (341)) - (Prims.of_int (12)) - (Prims.of_int (346)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (342)) - (Prims.of_int (14)) - (Prims.of_int (343)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (341)) - (Prims.of_int (39)) - (Prims.of_int (346)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (342)) - (Prims.of_int (22)) - (Prims.of_int (343)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (342)) - (Prims.of_int (14)) - (Prims.of_int (343)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (342)) - (Prims.of_int (22)) - (Prims.of_int (343)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (342)) - (Prims.of_int (22)) - (Prims.of_int (343)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (343)) (Prims.of_int (20)) (Prims.of_int (343)) @@ -2258,14 +2354,14 @@ let (check_wild : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - ex1)) + uu___16) (fun - uu___7 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___18 + -> fun x -> Prims.strcat (Prims.strcat @@ -2276,58 +2372,77 @@ let (check_wild : k) " binders; but only found ")) (Prims.strcat - uu___7 + uu___17 " with ")) (Prims.strcat (Prims.string_of_int x) - " binders"))))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___7 - (k - n))))) + " binders"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (342)) + (Prims.of_int (22)) + (Prims.of_int (343)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (342)) + (Prims.of_int (22)) + (Prims.of_int (343)) + (Prims.of_int (38))))) + (Obj.magic + uu___15) (fun - uu___7 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - Pulse_PP.text - uu___7)))) - (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___17 + -> + uu___16 + (k - n))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (341)) - (Prims.of_int (39)) - (Prims.of_int (346)) - (Prims.of_int (13))))) + (Prims.of_int (342)) + (Prims.of_int (22)) + (Prims.of_int (343)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (341)) - (Prims.of_int (39)) - (Prims.of_int (346)) - (Prims.of_int (13))))) + (Prims.of_int (342)) + (Prims.of_int (14)) + (Prims.of_int (343)) + (Prims.of_int (38))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_PP.text + uu___15)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (344)) + (Prims.of_int (342)) (Prims.of_int (14)) - (Prims.of_int (345)) - (Prims.of_int (53))))) + (Prims.of_int (343)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2337,25 +2452,56 @@ let (check_wild : (Prims.of_int (346)) (Prims.of_int (13))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + (fun + uu___14 + -> + let uu___15 + = + let uu___16 + = + let uu___17 + = + let uu___18 + = + let uu___19 + = + Pulse_Syntax_Pure.canon_slprop_print + pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (345)) - (Prims.of_int (16)) + (Prims.of_int (30)) (Prims.of_int (345)) - (Prims.of_int (53))))) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (344)) - (Prims.of_int (14)) + (Prims.of_int (345)) + (Prims.of_int (23)) (Prims.of_int (345)) (Prims.of_int (53))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + (fun + uu___20 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___20)) + uu___20) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2373,84 +2519,144 @@ let (check_wild : (Prims.of_int (345)) (Prims.of_int (53))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___18) + (fun + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + Pulse_PP.indent + uu___19)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (345)) - (Prims.of_int (30)) + (Prims.of_int (16)) (Prims.of_int (345)) - (Prims.of_int (52))))) + (Prims.of_int (53))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (345)) - (Prims.of_int (23)) + (Prims.of_int (344)) + (Prims.of_int (14)) (Prims.of_int (345)) (Prims.of_int (53))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre)) - (fun - uu___8 -> + uu___17) (fun - uu___8 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___8)) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Pulse_PP.indent - uu___8)))) - (fun - uu___8 -> + uu___18 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___19 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text "The context was:") - uu___8)))) + uu___18)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (344)) + (Prims.of_int (14)) + (Prims.of_int (345)) + (Prims.of_int (53))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (341)) + (Prims.of_int (39)) + (Prims.of_int (346)) + (Prims.of_int (13))))) + (Obj.magic + uu___16) (fun - uu___8 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - [uu___8])))) + uu___18 + -> + [uu___17])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (341)) + (Prims.of_int (39)) + (Prims.of_int (346)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (341)) + (Prims.of_int (39)) + (Prims.of_int (346)) + (Prims.of_int (13))))) + (Obj.magic + uu___15) (fun - uu___8 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - uu___7 :: - uu___8)))) - uu___7))) + uu___17 + -> + uu___14 + :: + uu___16)))) + uu___14) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (341)) + (Prims.of_int (39)) + (Prims.of_int (346)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (341)) + (Prims.of_int (12)) + (Prims.of_int (346)) + (Prims.of_int (13))))) + (Obj.magic + uu___12) (fun - uu___7 -> + uu___13 + -> (fun - uu___7 -> + uu___13 + -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) - uu___7)) - uu___7)))) - uu___6 - uu___5 in + uu___13)) + uu___13)))) + uu___11 + uu___10 in Obj.magic (peel_binders k ex1)) - uu___5)))) - uu___4))) uu___4)))) - uu___1))) uu___) + uu___10)))) + uu___8))) uu___7)))) + uu___3))) uu___1) let rec (add_rem_uvs : Pulse_Typing_Env.env -> Pulse_Syntax_Base.typ -> @@ -2476,7 +2682,13 @@ let rec (add_rem_uvs : | FStar_Pervasives_Native.Some (b, qopt, c) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env g uvs))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2493,12 +2705,12 @@ let rec (add_rem_uvs : (Prims.of_int (37)) (Prims.of_int (365)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env g uvs))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun x -> + let uu___1 = + Pulse_Syntax_Base.ppname_for_uvar + b.Pulse_Syntax_Base.binder_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2517,11 +2729,15 @@ let rec (add_rem_uvs : (Prims.of_int (51)) (Prims.of_int (365)) (Prims.of_int (37))))) - (Obj.magic - (Pulse_Syntax_Base.ppname_for_uvar - b.Pulse_Syntax_Base.binder_ppname)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ppname -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Syntax_Naming.open_comp_nv + c (ppname, x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2540,12 +2756,18 @@ let rec (add_rem_uvs : (Prims.of_int (42)) (Prims.of_int (365)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Naming.open_comp_nv - c (ppname, x))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun ct -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 + -> + Pulse_Typing_Env.push_binding + uvs x + ppname + b.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2564,16 +2786,27 @@ let rec (add_rem_uvs : (Prims.of_int (58)) (Prims.of_int (365)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ - -> - Pulse_Typing_Env.push_binding - uvs x - ppname - b.Pulse_Syntax_Base.binder_ty)) - (fun uu___ -> + (Obj.magic + uu___3) + (fun uu___4 + -> (fun uvs1 -> + let uu___4 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___5 -> + Pulse_Syntax_Pure.tm_pureapp + v qopt + (Pulse_Syntax_Pure.tm_var + { + Pulse_Syntax_Base.nm_index + = x; + Pulse_Syntax_Base.nm_ppname + = ppname + }))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2592,20 +2825,10 @@ let rec (add_rem_uvs : (Prims.of_int (4)) (Prims.of_int (365)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___ -> - Pulse_Syntax_Pure.tm_pureapp - v qopt - (Pulse_Syntax_Pure.tm_var - { - Pulse_Syntax_Base.nm_index - = x; - Pulse_Syntax_Base.nm_ppname - = ppname - }))) + (Obj.magic + uu___4) (fun - uu___ -> + uu___5 -> (fun v1 -> Obj.magic @@ -2614,10 +2837,10 @@ let rec (add_rem_uvs : (Pulse_Syntax_Base.comp_res ct) uvs1 v1)) - uu___))) - uu___))) - uu___))) uu___))) - uu___)))) uu___3 uu___2 uu___1 uu___ + uu___5))) + uu___4))) + uu___3))) uu___2))) + uu___1)))) uu___3 uu___2 uu___1 uu___ let (check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -2636,6 +2859,12 @@ let (check : fun res_ppname -> fun st -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_assert" + st.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2649,12 +2878,13 @@ let (check : "Pulse.Checker.AssertWithBinders.fst" (Prims.of_int (378)) (Prims.of_int (51)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_assert" - st.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> st.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2673,11 +2903,10 @@ let (check : (Prims.of_int (51)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_ProofHintWithBinders { Pulse_Syntax_Base.hint_type = @@ -2687,6 +2916,7 @@ let (check : -> (match hint_type with | Pulse_Syntax_Base.WILD -> + let uu___3 = check_wild g1 pre st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2705,17 +2935,117 @@ let (check : (Prims.of_int (4)) (Prims.of_int (385)) (Prims.of_int (50))))) - (Obj.magic - (check_wild g1 pre st)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun st1 -> Obj.magic (check1 g1 pre () post_hint res_ppname st1)) - uu___1)) + uu___4)) | Pulse_Syntax_Base.SHOW_PROOF_STATE r -> + let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + Pulse_Syntax_Pure.canon_slprop_print + pre in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (392)) + (Prims.of_int (26)) + (Prims.of_int (392)) + (Prims.of_int (48))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (392)) + (Prims.of_int (19)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___8)) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (392)) + (Prims.of_int (19)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (392)) + (Prims.of_int (12)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Pulse_PP.indent + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (392)) + (Prims.of_int (12)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (391)) + (Prims.of_int (6)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "Current context:") + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (391)) + (Prims.of_int (6)) + (Prims.of_int (392)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (390)) + (Prims.of_int (14)) + (Prims.of_int (393)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> [uu___5])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2734,125 +3064,25 @@ let (check : (Prims.of_int (4)) (Prims.of_int (394)) (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (391)) - (Prims.of_int (6)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (390)) - (Prims.of_int (14)) - (Prims.of_int (393)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (392)) - (Prims.of_int (12)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (391)) - (Prims.of_int (6)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (392)) - (Prims.of_int (19)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (392)) - (Prims.of_int (12)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (392)) - (Prims.of_int (26)) - (Prims.of_int (392)) - (Prims.of_int (48))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (392)) - (Prims.of_int (19)) - (Prims.of_int (392)) - (Prims.of_int (49))))) - (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_print - pre)) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___1)) - uu___1))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_PP.indent - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 - -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "Current context:") - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - [uu___1])))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun msg -> Obj.magic (Pulse_Typing_Env.fail_doc_env true g1 (FStar_Pervasives_Native.Some r) msg)) - uu___1)) + uu___4)) | Pulse_Syntax_Base.RENAME { Pulse_Syntax_Base.pairs = - uu___1; - Pulse_Syntax_Base.goal = uu___2; + uu___3; + Pulse_Syntax_Base.goal = uu___4; Pulse_Syntax_Base.tac_opt = - uu___3;_} + uu___5;_} -> + let uu___6 = + check_renaming g1 pre st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2871,15 +3101,14 @@ let (check : (Prims.of_int (4)) (Prims.of_int (398)) (Prims.of_int (50))))) - (Obj.magic - (check_renaming g1 pre st)) - (fun uu___4 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun st1 -> Obj.magic (check1 g1 pre () post_hint res_ppname st1)) - uu___4)) + uu___7)) | Pulse_Syntax_Base.REWRITE { Pulse_Syntax_Base.t1 = t1; Pulse_Syntax_Base.t2 = t2; @@ -2888,6 +3117,29 @@ let (check : -> (match bs with | [] -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + { + Pulse_Syntax_Base.term1 + = + (Pulse_Syntax_Base.Tm_Rewrite + { + Pulse_Syntax_Base.t11 + = t1; + Pulse_Syntax_Base.t21 + = t2; + Pulse_Syntax_Base.tac_opt2 + = tac_opt + }); + Pulse_Syntax_Base.range1 + = + (st.Pulse_Syntax_Base.range1); + Pulse_Syntax_Base.effect_tag + = + (st.Pulse_Syntax_Base.effect_tag) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2906,28 +3158,8 @@ let (check : (Prims.of_int (6)) (Prims.of_int (405)) (Prims.of_int (83))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - { - Pulse_Syntax_Base.term1 - = - (Pulse_Syntax_Base.Tm_Rewrite - { - Pulse_Syntax_Base.t11 - = t1; - Pulse_Syntax_Base.t21 - = t2; - Pulse_Syntax_Base.tac_opt2 - = tac_opt - }); - Pulse_Syntax_Base.range1 - = - (st.Pulse_Syntax_Base.range1); - Pulse_Syntax_Base.effect_tag - = - (st.Pulse_Syntax_Base.effect_tag) - })) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun t -> Obj.magic (check1 g1 pre @@ -2953,73 +3185,57 @@ let (check : Pulse_Syntax_Base.effect_tag = (st.Pulse_Syntax_Base.effect_tag) - })) uu___1)) - | uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (407)) - (Prims.of_int (16)) - (Prims.of_int (407)) - (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (407)) - (Prims.of_int (66)) - (Prims.of_int (410)) - (Prims.of_int (52))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - { - Pulse_Syntax_Base.term1 - = - (Pulse_Syntax_Base.Tm_Rewrite - { + })) uu___4)) + | uu___3 -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + { + Pulse_Syntax_Base.term1 + = + (Pulse_Syntax_Base.Tm_Rewrite + { Pulse_Syntax_Base.t11 = t1; Pulse_Syntax_Base.t21 = t2; Pulse_Syntax_Base.tac_opt2 = tac_opt - }); - Pulse_Syntax_Base.range1 - = - (st.Pulse_Syntax_Base.range1); - Pulse_Syntax_Base.effect_tag - = - (st.Pulse_Syntax_Base.effect_tag) - })) - (fun uu___2 -> - (fun t -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (408)) - (Prims.of_int (19)) - (Prims.of_int (408)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (408)) - (Prims.of_int (93)) - (Prims.of_int (410)) - (Prims.of_int (52))))) - (FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___2 -> + }); + Pulse_Syntax_Base.range1 + = + (st.Pulse_Syntax_Base.range1); + Pulse_Syntax_Base.effect_tag + = + (st.Pulse_Syntax_Base.effect_tag) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (407)) + (Prims.of_int (16)) + (Prims.of_int (407)) + (Prims.of_int (61))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (407)) + (Prims.of_int (66)) + (Prims.of_int (410)) + (Prims.of_int (52))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun t -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___6 -> { Pulse_Syntax_Base.term1 = @@ -3040,32 +3256,39 @@ let (check : Pulse_Syntax_Base.effect_tag = (st.Pulse_Syntax_Base.effect_tag) - })) - (fun uu___2 - -> - (fun - body1 -> + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (409)) - (Prims.of_int (17)) - (Prims.of_int (409)) - (Prims.of_int (113))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (408)) + (Prims.of_int (19)) + (Prims.of_int (408)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (410)) - (Prims.of_int (6)) + (Prims.of_int (408)) + (Prims.of_int (93)) (Prims.of_int (410)) (Prims.of_int (52))))) + (Obj.magic + uu___5) + (fun uu___6 + -> + (fun + body1 -> + let uu___6 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___7 -> { Pulse_Syntax_Base.term1 = @@ -3089,9 +3312,29 @@ let (check : Pulse_Syntax_Base.effect_tag = (st.Pulse_Syntax_Base.effect_tag) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (409)) + (Prims.of_int (17)) + (Prims.of_int (409)) + (Prims.of_int (113))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (410)) + (Prims.of_int (6)) + (Prims.of_int (410)) + (Prims.of_int (52))))) + (Obj.magic + uu___6) (fun - uu___2 -> + uu___7 -> (fun st1 -> Obj.magic @@ -3100,11 +3343,15 @@ let (check : post_hint res_ppname st1)) - uu___2))) - uu___2))) - uu___2))) + uu___7))) + uu___6))) + uu___5))) | Pulse_Syntax_Base.ASSERT { Pulse_Syntax_Base.p = v;_} -> + let uu___3 = + Obj.magic + (FStar_Tactics_BreakVC.break_vc + ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3123,11 +3370,12 @@ let (check : (Prims.of_int (37)) (Prims.of_int (430)) (Prims.of_int (52))))) - (Obj.magic - (FStar_Tactics_BreakVC.break_vc - ())) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + infer_binder_types + g1 bs v in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3146,11 +3394,17 @@ let (check : (Prims.of_int (41)) (Prims.of_int (430)) (Prims.of_int (52))))) - (Obj.magic - (infer_binder_types - g1 bs v)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun bs1 -> + let uu___6 + = + open_binders + g1 bs1 + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g1)) v + body in Obj.magic ( FStar_Tactics_Effect.tac_bind @@ -3171,17 +3425,12 @@ let (check : (Prims.of_int (430)) (Prims.of_int (52))))) (Obj.magic - (open_binders - g1 bs1 - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g1)) v - body)) + uu___6) (fun - uu___2 -> + uu___7 -> (fun - uu___2 -> - match uu___2 + uu___7 -> + match uu___7 with | FStar_Pervasives.Mkdtuple3 @@ -3189,6 +3438,14 @@ let (check : v_opened, body_opened) -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + (v_opened, + body_opened))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3207,20 +3464,23 @@ let (check : (Prims.of_int (93)) (Prims.of_int (430)) (Prims.of_int (52))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - (v_opened, - body_opened))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> - match uu___3 + uu___9 -> + match uu___9 with | (v1, body1) -> + let uu___10 + = + Pulse_Checker_Pure.check_slprop + (Pulse_Typing_Env.push_env + g1 uvs) + v1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3240,20 +3500,25 @@ let (check : (Prims.of_int (430)) (Prims.of_int (52))))) (Obj.magic - (Pulse_Checker_Pure.check_slprop - (Pulse_Typing_Env.push_env - g1 uvs) - v1)) + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> - match uu___4 + uu___11 + -> + match uu___11 with | Prims.Mkdtuple2 (v2, d) -> + let uu___12 + = + Pulse_Checker_Prover.prove + false g + pre () + uvs v2 () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3273,24 +3538,35 @@ let (check : (Prims.of_int (430)) (Prims.of_int (52))))) (Obj.magic - (Pulse_Checker_Prover.prove - false g - pre () - uvs v2 ())) + uu___12) (fun - uu___5 -> + uu___13 + -> (fun - uu___5 -> - match uu___5 + uu___13 + -> + match uu___13 with | FStar_Pervasives.Mkdtuple5 (g11, nts, - uu___6, + uu___14, pre', k_frame) -> + let uu___15 + = + check1 + g11 + (Pulse_Syntax_Pure.tm_star + (Pulse_Checker_Prover_Substs.nt_subst_term + v2 nts) + pre') () + post_hint + res_ppname + (Pulse_Checker_Prover_Substs.nt_subst_st_term + body1 nts) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3310,22 +3586,15 @@ let (check : (Prims.of_int (430)) (Prims.of_int (52))))) (Obj.magic - (check1 - g11 - (Pulse_Syntax_Pure.tm_star - (Pulse_Checker_Prover_Substs.nt_subst_term - v2 nts) - pre') () - post_hint - res_ppname - (Pulse_Checker_Prover_Substs.nt_subst_st_term - body1 nts))) + uu___15) (fun - uu___7 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - match uu___7 + uu___17 + -> + match uu___16 with | FStar_Pervasives.Mkdtuple5 @@ -3346,18 +3615,47 @@ let (check : (FStar_Pervasives.dfst g2) k_frame k)))))) - uu___5))) - uu___4))) - uu___3))) - uu___2))) - uu___2))) - uu___1)) + uu___13))) + uu___11))) + uu___9))) + uu___7))) + uu___6))) + uu___4)) | Pulse_Syntax_Base.UNFOLD { Pulse_Syntax_Base.names1 = names; Pulse_Syntax_Base.p2 = v;_} -> + let uu___3 = + let uu___4 = + infer_binder_types g1 bs v in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (437)) + (Prims.of_int (15)) + (Prims.of_int (437)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (438)) + (Prims.of_int (6)) + (Prims.of_int (438)) + (Prims.of_int (53))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun bs1 -> + Obj.magic + (open_binders g1 bs1 + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g1)) v body)) + uu___5) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3376,44 +3674,17 @@ let (check : (Prims.of_int (26)) (Prims.of_int (498)) (Prims.of_int (50))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (437)) - (Prims.of_int (15)) - (Prims.of_int (437)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (438)) - (Prims.of_int (6)) - (Prims.of_int (438)) - (Prims.of_int (53))))) - (Obj.magic - (infer_binder_types - g1 bs v)) - (fun uu___1 -> - (fun bs1 -> - Obj.magic - (open_binders - g1 bs1 - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g1)) v - body)) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 (uvs, v_opened, body_opened) -> + let uu___5 = + check_unfoldable + g1 v in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3433,12 +3704,18 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (check_unfoldable - g1 v)) - (fun uu___2 + uu___5) + (fun uu___6 -> (fun - uu___2 -> + uu___6 -> + let uu___7 + = + Pulse_Checker_Pure.instantiate_term_implicits + (Pulse_Typing_Env.push_env + g1 uvs) + v_opened + FStar_Pervasives_Native.None in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3458,40 +3735,29 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - (Pulse_Typing_Env.push_env - g1 uvs) - v_opened - FStar_Pervasives_Native.None)) + uu___7) (fun - uu___3 -> + uu___8 -> (fun - uu___3 -> - match uu___3 + uu___8 -> + match uu___8 with | (v_opened1, t_rem) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (444)) - (Prims.of_int (23)) - (Prims.of_int (447)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (442)) - (Prims.of_int (89)) - (Prims.of_int (498)) - (Prims.of_int (50))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + let uu___10 + = + add_rem_uvs + (Pulse_Typing_Env.push_env + g1 uvs) + t_rem + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g1)) + v_opened1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3509,20 +3775,15 @@ let (check : (Prims.of_int (447)) (Prims.of_int (36))))) (Obj.magic - (add_rem_uvs - (Pulse_Typing_Env.push_env - g1 uvs) - t_rem - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g1)) - v_opened1)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | Prims.Mkdtuple2 @@ -3532,42 +3793,55 @@ let (check : ((Pulse_Typing_Env.push_env uvs uvs_rem), - v_opened2))))) - (fun - uu___4 -> - (fun - uu___4 -> - match uu___4 - with - | - (uvs1, - v_opened2) - -> + v_opened2))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (450)) - (Prims.of_int (6)) - (Prims.of_int (456)) - (Prims.of_int (16))))) + (Prims.of_int (444)) + (Prims.of_int (23)) + (Prims.of_int (447)) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (447)) - (Prims.of_int (39)) + (Prims.of_int (442)) + (Prims.of_int (89)) (Prims.of_int (498)) (Prims.of_int (50))))) - (match hint_type + (Obj.magic + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + match uu___10 + with + | + (uvs1, + v_opened2) + -> + let uu___11 + = + match hint_type with | Pulse_Syntax_Base.UNFOLD - uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12 + -> + let uu___13 + = + unfold_defs + (Pulse_Typing_Env.push_env + g1 uvs1) + FStar_Pervasives_Native.None + v_opened2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3585,28 +3859,32 @@ let (check : (Prims.of_int (453)) (Prims.of_int (50))))) (Obj.magic - (unfold_defs - (Pulse_Typing_Env.push_env - g1 uvs1) - FStar_Pervasives_Native.None - v_opened2)) + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___15 + -> (v_opened2, - uu___6)))) + uu___14))) | Pulse_Syntax_Base.FOLD { Pulse_Syntax_Base.names = ns; Pulse_Syntax_Base.p1 - = uu___5;_} + = uu___12;_} -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___13 + = + unfold_defs + (Pulse_Typing_Env.push_env + g1 uvs1) + ns + v_opened2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3624,47 +3902,54 @@ let (check : (Prims.of_int (456)) (Prims.of_int (16))))) (Obj.magic - (unfold_defs - (Pulse_Typing_Env.push_env - g1 uvs1) - ns - v_opened2)) + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - (uu___6, - v_opened2))))) - (fun - uu___5 -> - (fun - uu___5 -> - match uu___5 - with - | - (lhs, - rhs) -> + uu___15 + -> + (uu___14, + v_opened2))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (458)) - (Prims.of_int (17)) - (Prims.of_int (458)) - (Prims.of_int (53))))) + (Prims.of_int (450)) + (Prims.of_int (6)) + (Prims.of_int (456)) + (Prims.of_int (16))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (458)) - (Prims.of_int (56)) + (Prims.of_int (447)) + (Prims.of_int (39)) (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + match uu___12 + with + | + (lhs, + rhs) -> + let uu___13 + = + let uu___14 + = + Pulse_Typing_Env.bindings_with_ppname + uvs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3682,19 +3967,50 @@ let (check : (Prims.of_int (458)) (Prims.of_int (53))))) (Obj.magic - (Pulse_Typing_Env.bindings_with_ppname - uvs1)) + uu___14) (fun - uu___6 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___16 + -> FStar_List_Tot_Base.rev - uu___6)))) + uu___15)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (458)) + (Prims.of_int (17)) + (Prims.of_int (458)) + (Prims.of_int (53))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (458)) + (Prims.of_int (56)) + (Prims.of_int (498)) + (Prims.of_int (50))))) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> (fun uvs_bs -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + closing + uvs_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3713,16 +4029,24 @@ let (check : (Prims.of_int (42)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - closing - uvs_bs)) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun uvs_closing -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Syntax_Naming.subst_term + lhs + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3741,16 +4065,23 @@ let (check : (Prims.of_int (43)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_term - lhs - uvs_closing)) + (Obj.magic + uu___15) (fun - uu___6 -> + uu___16 + -> (fun lhs1 -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Syntax_Naming.subst_term + rhs + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3769,16 +4100,23 @@ let (check : (Prims.of_int (43)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_term - rhs - uvs_closing)) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun rhs1 -> + let uu___17 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_Syntax_Naming.subst_st_term + body_opened + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3797,16 +4135,22 @@ let (check : (Prims.of_int (55)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_st_term - body_opened - uvs_closing)) + (Obj.magic + uu___17) (fun - uu___6 -> + uu___18 + -> (fun body1 -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + close_binders + uvs_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3825,15 +4169,18 @@ let (check : (Prims.of_int (4)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - close_binders - uvs_bs)) + (Obj.magic + uu___18) (fun - uu___6 -> + uu___19 + -> (fun bs1 -> + let uu___19 + = + Obj.magic + (FStar_Tactics_BreakVC.break_vc + ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3853,31 +4200,16 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (FStar_Tactics_BreakVC.break_vc - ())) + uu___19) (fun - uu___6 -> + uu___20 + -> (fun - uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (467)) - (Prims.of_int (4)) - (Prims.of_int (478)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (478)) - (Prims.of_int (8)) - (Prims.of_int (498)) - (Prims.of_int (50))))) - (if + uu___20 + -> + let uu___21 + = + if Pulse_RuntimeUtils.debug_at_level (Pulse_Typing_Env.fstar_env g1) @@ -3885,33 +4217,58 @@ let (check : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___22 + = + let uu___23 + = + let uu___24 + = + let uu___25 + = + Pulse_PP.pp + Pulse_PP.printable_term + lhs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) + (Prims.of_int (474)) + (Prims.of_int (33)) + (Prims.of_int (474)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (477)) - (Prims.of_int (6)) - (Prims.of_int (477)) - (Prims.of_int (40))))) + (Prims.of_int (474)) + (Prims.of_int (8)) + (Prims.of_int (474)) + (Prims.of_int (41))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___27 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "lhs:") + uu___26)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) + (Prims.of_int (474)) + (Prims.of_int (8)) + (Prims.of_int (474)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3921,60 +4278,81 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24) + (fun + uu___25 + -> + (fun + uu___25 + -> + let uu___26 + = + let uu___27 + = + let uu___28 + = + Pulse_PP.pp + Pulse_PP.printable_term + rhs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (474)) - (Prims.of_int (8)) - (Prims.of_int (474)) + (Prims.of_int (475)) + (Prims.of_int (33)) + (Prims.of_int (475)) (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) + (Prims.of_int (475)) + (Prims.of_int (8)) + (Prims.of_int (475)) + (Prims.of_int (41))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___28) + (fun + uu___29 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___30 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "rhs:") + uu___29)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (474)) - (Prims.of_int (33)) - (Prims.of_int (474)) + (Prims.of_int (475)) + (Prims.of_int (8)) + (Prims.of_int (475)) (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (474)) - (Prims.of_int (8)) - (Prims.of_int (474)) - (Prims.of_int (41))))) + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - lhs1)) + uu___27) (fun - uu___7 -> + uu___28 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "lhs:") - uu___7)))) - (fun - uu___7 -> - (fun - uu___7 -> + uu___29 + -> + [uu___28])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3994,15 +4372,27 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + uu___25 + :: + uu___27)))) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (8)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4012,62 +4402,40 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + (Pulse_PP.text + "Elaborated fold/unfold to rewrite") + :: + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (33)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (8)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (477)) + (Prims.of_int (6)) + (Prims.of_int (477)) + (Prims.of_int (40))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - rhs1)) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "rhs:") - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - [uu___8])))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac + uu___22) (fun - uu___9 -> - uu___7 :: - uu___8)))) - uu___7))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - (Pulse_PP.text - "Elaborated fold/unfold to rewrite") - :: uu___7)))) - (fun - uu___7 -> + uu___23 + -> (fun msg -> Obj.magic @@ -4076,39 +4444,47 @@ let (check : (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) msg)) - uu___7))) + uu___23))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - ())))) - (fun - uu___7 -> - (fun - uu___7 -> + uu___23 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (479)) - (Prims.of_int (15)) - (Prims.of_int (483)) - (Prims.of_int (52))))) + (Prims.of_int (467)) + (Prims.of_int (4)) + (Prims.of_int (478)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (483)) - (Prims.of_int (57)) + (Prims.of_int (478)) + (Prims.of_int (8)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + let uu___23 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___24 + -> { Pulse_Syntax_Base.term1 = @@ -4130,32 +4506,39 @@ let (check : = (Pulse_Syntax_Base.as_effect_hint Pulse_Syntax_Base.STT_Ghost) - })) - (fun - uu___8 -> - (fun rw - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (484)) + (Prims.of_int (479)) (Prims.of_int (15)) - (Prims.of_int (487)) - (Prims.of_int (43))))) + (Prims.of_int (483)) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (487)) - (Prims.of_int (48)) + (Prims.of_int (483)) + (Prims.of_int (57)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___23) + (fun + uu___24 + -> + (fun rw + -> + let uu___24 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___25 + -> { Pulse_Syntax_Base.term1 = @@ -4182,38 +4565,46 @@ let (check : Pulse_Syntax_Base.effect_tag = (body1.Pulse_Syntax_Base.effect_tag) - })) - (fun - uu___8 -> - (fun st1 - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (490)) - (Prims.of_int (6)) - (Prims.of_int (497)) - (Prims.of_int (38))))) + (Prims.of_int (484)) + (Prims.of_int (15)) + (Prims.of_int (487)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (498)) - (Prims.of_int (4)) + (Prims.of_int (487)) + (Prims.of_int (48)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___24) + (fun + uu___25 + -> + (fun st1 + -> + let uu___25 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___26 + -> match bs1 with | [] -> st1 | - uu___9 -> + uu___27 + -> { Pulse_Syntax_Base.term1 = @@ -4237,9 +4628,30 @@ let (check : Pulse_Syntax_Base.effect_tag = (st1.Pulse_Syntax_Base.effect_tag) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (490)) + (Prims.of_int (6)) + (Prims.of_int (497)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (498)) + (Prims.of_int (4)) + (Prims.of_int (498)) + (Prims.of_int (50))))) + (Obj.magic + uu___25) (fun - uu___8 -> + uu___26 + -> (fun st2 -> Obj.magic @@ -4248,27 +4660,56 @@ let (check : post_hint res_ppname st2)) + uu___26))) + uu___25))) + uu___24))) + uu___22))) + uu___20))) + uu___19))) + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___14))) + uu___12))) + uu___10))) uu___8))) - uu___8))) - uu___8))) - uu___7))) - uu___6))) - uu___6))) - uu___6))) uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___5))) - uu___4))) - uu___3))) - uu___2))) - uu___1)) + uu___4)) | Pulse_Syntax_Base.FOLD { Pulse_Syntax_Base.names = names; Pulse_Syntax_Base.p1 = v;_} -> + let uu___3 = + let uu___4 = + infer_binder_types g1 bs v in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (437)) + (Prims.of_int (15)) + (Prims.of_int (437)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (438)) + (Prims.of_int (6)) + (Prims.of_int (438)) + (Prims.of_int (53))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun bs1 -> + Obj.magic + (open_binders g1 bs1 + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g1)) v body)) + uu___5) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4287,44 +4728,17 @@ let (check : (Prims.of_int (26)) (Prims.of_int (498)) (Prims.of_int (50))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (437)) - (Prims.of_int (15)) - (Prims.of_int (437)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (438)) - (Prims.of_int (6)) - (Prims.of_int (438)) - (Prims.of_int (53))))) - (Obj.magic - (infer_binder_types - g1 bs v)) - (fun uu___1 -> - (fun bs1 -> - Obj.magic - (open_binders - g1 bs1 - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g1)) v - body)) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 (uvs, v_opened, body_opened) -> + let uu___5 = + check_unfoldable + g1 v in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4344,12 +4758,18 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (check_unfoldable - g1 v)) - (fun uu___2 + uu___5) + (fun uu___6 -> (fun - uu___2 -> + uu___6 -> + let uu___7 + = + Pulse_Checker_Pure.instantiate_term_implicits + (Pulse_Typing_Env.push_env + g1 uvs) + v_opened + FStar_Pervasives_Native.None in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4369,40 +4789,29 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - (Pulse_Typing_Env.push_env - g1 uvs) - v_opened - FStar_Pervasives_Native.None)) + uu___7) (fun - uu___3 -> + uu___8 -> (fun - uu___3 -> - match uu___3 + uu___8 -> + match uu___8 with | (v_opened1, t_rem) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (444)) - (Prims.of_int (23)) - (Prims.of_int (447)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (442)) - (Prims.of_int (89)) - (Prims.of_int (498)) - (Prims.of_int (50))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + let uu___10 + = + add_rem_uvs + (Pulse_Typing_Env.push_env + g1 uvs) + t_rem + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g1)) + v_opened1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4420,20 +4829,15 @@ let (check : (Prims.of_int (447)) (Prims.of_int (36))))) (Obj.magic - (add_rem_uvs - (Pulse_Typing_Env.push_env - g1 uvs) - t_rem - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g1)) - v_opened1)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | Prims.Mkdtuple2 @@ -4443,42 +4847,55 @@ let (check : ((Pulse_Typing_Env.push_env uvs uvs_rem), - v_opened2))))) - (fun - uu___4 -> - (fun - uu___4 -> - match uu___4 - with - | - (uvs1, - v_opened2) - -> + v_opened2))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (450)) - (Prims.of_int (6)) - (Prims.of_int (456)) - (Prims.of_int (16))))) + (Prims.of_int (444)) + (Prims.of_int (23)) + (Prims.of_int (447)) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (447)) - (Prims.of_int (39)) + (Prims.of_int (442)) + (Prims.of_int (89)) (Prims.of_int (498)) (Prims.of_int (50))))) - (match hint_type + (Obj.magic + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + match uu___10 + with + | + (uvs1, + v_opened2) + -> + let uu___11 + = + match hint_type with | Pulse_Syntax_Base.UNFOLD - uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12 + -> + let uu___13 + = + unfold_defs + (Pulse_Typing_Env.push_env + g1 uvs1) + FStar_Pervasives_Native.None + v_opened2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4496,28 +4913,32 @@ let (check : (Prims.of_int (453)) (Prims.of_int (50))))) (Obj.magic - (unfold_defs - (Pulse_Typing_Env.push_env - g1 uvs1) - FStar_Pervasives_Native.None - v_opened2)) + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___15 + -> (v_opened2, - uu___6)))) + uu___14))) | Pulse_Syntax_Base.FOLD { Pulse_Syntax_Base.names = ns; Pulse_Syntax_Base.p1 - = uu___5;_} + = uu___12;_} -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___13 + = + unfold_defs + (Pulse_Typing_Env.push_env + g1 uvs1) + ns + v_opened2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4535,47 +4956,54 @@ let (check : (Prims.of_int (456)) (Prims.of_int (16))))) (Obj.magic - (unfold_defs - (Pulse_Typing_Env.push_env - g1 uvs1) - ns - v_opened2)) + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - (uu___6, - v_opened2))))) - (fun - uu___5 -> - (fun - uu___5 -> - match uu___5 - with - | - (lhs, - rhs) -> + uu___15 + -> + (uu___14, + v_opened2))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (458)) - (Prims.of_int (17)) - (Prims.of_int (458)) - (Prims.of_int (53))))) + (Prims.of_int (450)) + (Prims.of_int (6)) + (Prims.of_int (456)) + (Prims.of_int (16))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (458)) - (Prims.of_int (56)) + (Prims.of_int (447)) + (Prims.of_int (39)) (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + match uu___12 + with + | + (lhs, + rhs) -> + let uu___13 + = + let uu___14 + = + Pulse_Typing_Env.bindings_with_ppname + uvs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4593,19 +5021,50 @@ let (check : (Prims.of_int (458)) (Prims.of_int (53))))) (Obj.magic - (Pulse_Typing_Env.bindings_with_ppname - uvs1)) + uu___14) (fun - uu___6 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___16 + -> FStar_List_Tot_Base.rev - uu___6)))) + uu___15)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (458)) + (Prims.of_int (17)) + (Prims.of_int (458)) + (Prims.of_int (53))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (458)) + (Prims.of_int (56)) + (Prims.of_int (498)) + (Prims.of_int (50))))) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> (fun uvs_bs -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + closing + uvs_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4624,16 +5083,24 @@ let (check : (Prims.of_int (42)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - closing - uvs_bs)) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun uvs_closing -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Syntax_Naming.subst_term + lhs + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4652,16 +5119,23 @@ let (check : (Prims.of_int (43)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_term - lhs - uvs_closing)) + (Obj.magic + uu___15) (fun - uu___6 -> + uu___16 + -> (fun lhs1 -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Syntax_Naming.subst_term + rhs + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4680,16 +5154,23 @@ let (check : (Prims.of_int (43)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_term - rhs - uvs_closing)) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun rhs1 -> + let uu___17 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_Syntax_Naming.subst_st_term + body_opened + uvs_closing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4708,16 +5189,22 @@ let (check : (Prims.of_int (55)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.subst_st_term - body_opened - uvs_closing)) + (Obj.magic + uu___17) (fun - uu___6 -> + uu___18 + -> (fun body1 -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + close_binders + uvs_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4736,15 +5223,18 @@ let (check : (Prims.of_int (4)) (Prims.of_int (498)) (Prims.of_int (50))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - close_binders - uvs_bs)) + (Obj.magic + uu___18) (fun - uu___6 -> + uu___19 + -> (fun bs1 -> + let uu___19 + = + Obj.magic + (FStar_Tactics_BreakVC.break_vc + ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4764,31 +5254,16 @@ let (check : (Prims.of_int (498)) (Prims.of_int (50))))) (Obj.magic - (FStar_Tactics_BreakVC.break_vc - ())) + uu___19) (fun - uu___6 -> + uu___20 + -> (fun - uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (467)) - (Prims.of_int (4)) - (Prims.of_int (478)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (478)) - (Prims.of_int (8)) - (Prims.of_int (498)) - (Prims.of_int (50))))) - (if + uu___20 + -> + let uu___21 + = + if Pulse_RuntimeUtils.debug_at_level (Pulse_Typing_Env.fstar_env g1) @@ -4796,43 +5271,50 @@ let (check : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (477)) - (Prims.of_int (6)) - (Prims.of_int (477)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___22 + = + let uu___23 + = + let uu___24 + = + let uu___25 + = + Pulse_PP.pp + Pulse_PP.printable_term + lhs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (474)) + (Prims.of_int (33)) + (Prims.of_int (474)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (472)) - (Prims.of_int (16)) - (Prims.of_int (476)) - (Prims.of_int (7))))) + (Prims.of_int (474)) + (Prims.of_int (8)) + (Prims.of_int (474)) + (Prims.of_int (41))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___27 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "lhs:") + uu___26)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4850,42 +5332,81 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24) + (fun + uu___25 + -> + (fun + uu___25 + -> + let uu___26 + = + let uu___27 + = + let uu___28 + = + Pulse_PP.pp + Pulse_PP.printable_term + rhs1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (474)) + (Prims.of_int (475)) (Prims.of_int (33)) - (Prims.of_int (474)) + (Prims.of_int (475)) (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (474)) + (Prims.of_int (475)) (Prims.of_int (8)) - (Prims.of_int (474)) + (Prims.of_int (475)) (Prims.of_int (41))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - lhs1)) + uu___28) (fun - uu___7 -> + uu___29 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___30 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "lhs:") - uu___7)))) + "rhs:") + uu___29)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (475)) + (Prims.of_int (8)) + (Prims.of_int (475)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) + (Obj.magic + uu___27) (fun - uu___7 -> + uu___28 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___29 + -> + [uu___28])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4905,15 +5426,27 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + uu___25 + :: + uu___27)))) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (8)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4923,62 +5456,40 @@ let (check : (Prims.of_int (476)) (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + (Pulse_PP.text + "Elaborated fold/unfold to rewrite") + :: + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (33)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (472)) + (Prims.of_int (16)) + (Prims.of_int (476)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (475)) - (Prims.of_int (8)) - (Prims.of_int (475)) - (Prims.of_int (41))))) + (Prims.of_int (477)) + (Prims.of_int (6)) + (Prims.of_int (477)) + (Prims.of_int (40))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - rhs1)) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "rhs:") - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - [uu___8])))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - uu___7 :: - uu___8)))) - uu___7))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - (Pulse_PP.text - "Elaborated fold/unfold to rewrite") - :: uu___7)))) + uu___22) (fun - uu___7 -> + uu___23 + -> (fun msg -> Obj.magic @@ -4987,39 +5498,47 @@ let (check : (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) msg)) - uu___7))) + uu___23))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - ())))) - (fun - uu___7 -> - (fun - uu___7 -> + uu___23 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (479)) - (Prims.of_int (15)) - (Prims.of_int (483)) - (Prims.of_int (52))))) + (Prims.of_int (467)) + (Prims.of_int (4)) + (Prims.of_int (478)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (483)) - (Prims.of_int (57)) + (Prims.of_int (478)) + (Prims.of_int (8)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + let uu___23 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___24 + -> { Pulse_Syntax_Base.term1 = @@ -5041,32 +5560,39 @@ let (check : = (Pulse_Syntax_Base.as_effect_hint Pulse_Syntax_Base.STT_Ghost) - })) - (fun - uu___8 -> - (fun rw - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (484)) + (Prims.of_int (479)) (Prims.of_int (15)) - (Prims.of_int (487)) - (Prims.of_int (43))))) + (Prims.of_int (483)) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (487)) - (Prims.of_int (48)) + (Prims.of_int (483)) + (Prims.of_int (57)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___23) + (fun + uu___24 + -> + (fun rw + -> + let uu___24 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___25 + -> { Pulse_Syntax_Base.term1 = @@ -5093,38 +5619,46 @@ let (check : Pulse_Syntax_Base.effect_tag = (body1.Pulse_Syntax_Base.effect_tag) - })) - (fun - uu___8 -> - (fun st1 - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (490)) - (Prims.of_int (6)) - (Prims.of_int (497)) - (Prims.of_int (38))))) + (Prims.of_int (484)) + (Prims.of_int (15)) + (Prims.of_int (487)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.AssertWithBinders.fst" - (Prims.of_int (498)) - (Prims.of_int (4)) + (Prims.of_int (487)) + (Prims.of_int (48)) (Prims.of_int (498)) (Prims.of_int (50))))) + (Obj.magic + uu___24) + (fun + uu___25 + -> + (fun st1 + -> + let uu___25 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___26 + -> match bs1 with | [] -> st1 | - uu___9 -> + uu___27 + -> { Pulse_Syntax_Base.term1 = @@ -5148,9 +5682,30 @@ let (check : Pulse_Syntax_Base.effect_tag = (st1.Pulse_Syntax_Base.effect_tag) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (490)) + (Prims.of_int (6)) + (Prims.of_int (497)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.AssertWithBinders.fst" + (Prims.of_int (498)) + (Prims.of_int (4)) + (Prims.of_int (498)) + (Prims.of_int (50))))) + (Obj.magic + uu___25) (fun - uu___8 -> + uu___26 + -> (fun st2 -> Obj.magic @@ -5159,20 +5714,20 @@ let (check : post_hint res_ppname st2)) + uu___26))) + uu___25))) + uu___24))) + uu___22))) + uu___20))) + uu___19))) + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___14))) + uu___12))) + uu___10))) uu___8))) - uu___8))) - uu___8))) - uu___7))) uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___5))) - uu___4))) - uu___3))) - uu___2))) - uu___1)))) uu___))) - uu___) \ No newline at end of file + uu___4)))) uu___2))) + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Base.ml b/src/ocaml/plugin/generated/Pulse_Checker_Base.ml index 8bf193085..5e9970f2a 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Base.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Base.ml @@ -14,7 +14,8 @@ let (debug : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" @@ -25,11 +26,11 @@ let (debug : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (32)) (Prims.of_int (4)) (Prims.of_int (32)) (Prims.of_int (17))))) - (Obj.magic (f ())) - (fun uu___ -> - (fun uu___ -> - Obj.magic (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + Obj.magic (FStar_Tactics_V2_Builtins.print uu___1)) + uu___1))) else Obj.magic (Obj.repr @@ -44,6 +45,13 @@ let (format_failed_goal : fun g -> fun ctxt -> fun goal -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + fun ts -> + FStar_Tactics_Util.map + Pulse_Syntax_Printer.term_to_string ts)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -55,13 +63,59 @@ let (format_failed_goal : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (35)) (Prims.of_int (86)) (Prims.of_int (50)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun ts -> - FStar_Tactics_Util.map Pulse_Syntax_Printer.term_to_string - ts)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun terms_to_strings -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun ss -> + let uu___3 = + FStar_Tactics_Util.fold_left + (fun uu___5 -> + fun uu___4 -> + (fun uu___4 -> + fun s -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + match uu___4 with + | (i, acc) -> + ((i + Prims.int_one), + ((Prims.strcat + (Prims.strcat "" + (Prims.strcat + (Prims.string_of_int + i) ". ")) + (Prims.strcat s + "")) :: acc))))) + uu___5 uu___4) (Prims.int_one, []) ss in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (37)) + (Prims.of_int (18)) + (Prims.of_int (37)) + (Prims.of_int (102))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (36)) + (Prims.of_int (24)) + (Prims.of_int (38)) + (Prims.of_int (40))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + match uu___4 with + | (uu___6, s) -> + FStar_String.concat "\n " + (FStar_List_Tot_Base.rev s))))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -74,59 +128,38 @@ let (format_failed_goal : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (39)) (Prims.of_int (4)) (Prims.of_int (50)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun ss -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (37)) - (Prims.of_int (18)) - (Prims.of_int (37)) - (Prims.of_int (102))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (36)) - (Prims.of_int (24)) - (Prims.of_int (38)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Util.fold_left - (fun uu___2 -> - fun uu___1 -> - (fun uu___1 -> - fun s -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with - | (i, acc) -> - ((i + - Prims.int_one), - ((Prims.strcat - (Prims.strcat - "" - ( - Prims.strcat - (Prims.string_of_int - i) ". ")) - (Prims.strcat - s "")) :: - acc))))) uu___2 - uu___1) (Prims.int_one, []) ss)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with - | (uu___3, s) -> - FStar_String.concat "\n " - (FStar_List_Tot_Base.rev s))))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun numbered_list -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + fun ts -> + let uu___4 = terms_to_strings ts in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (40)) + (Prims.of_int (50)) + (Prims.of_int (40)) + (Prims.of_int (71))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (40)) + (Prims.of_int (36)) + (Prims.of_int (40)) + (Prims.of_int (71))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + Obj.magic + (numbered_list uu___5)) + uu___5))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -145,34 +178,11 @@ let (format_failed_goal : (Prims.of_int (2)) (Prims.of_int (50)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun ts -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (40)) - (Prims.of_int (50)) - (Prims.of_int (40)) - (Prims.of_int (71))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (40)) - (Prims.of_int (36)) - (Prims.of_int (40)) - (Prims.of_int (71))))) - (Obj.magic (terms_to_strings ts)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (numbered_list uu___1)) - uu___1))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun format_terms -> + let uu___3 = + Pulse_Typing_Env.env_to_string g in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -191,97 +201,62 @@ let (format_failed_goal : (Prims.of_int (2)) (Prims.of_int (50)) (Prims.of_int (21))))) - (Obj.magic - (Pulse_Typing_Env.env_to_string - g)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (41)) - (Prims.of_int (2)) - (Prims.of_int (50)) - (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (41)) - (Prims.of_int (2)) - (Prims.of_int (50)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (49)) - (Prims.of_int (4)) - (Prims.of_int (49)) - (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (41)) - (Prims.of_int (2)) - (Prims.of_int (50)) - (Prims.of_int (21))))) - (Obj.magic - (format_terms - ctxt)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (41)) - (Prims.of_int (2)) - (Prims.of_int (50)) - (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (41)) - (Prims.of_int (2)) - (Prims.of_int (50)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + format_terms ctxt in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (49)) + (Prims.of_int (4)) + (Prims.of_int (49)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (41)) + (Prims.of_int (2)) + (Prims.of_int (50)) + (Prims.of_int (21))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + format_terms + goal in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (48)) (Prims.of_int (4)) (Prims.of_int (48)) (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "FStar.Printf.fst" (Prims.of_int (122)) (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (format_terms - goal)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> + (Obj.magic + uu___9) + (fun uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___11 + -> fun x -> fun x1 -> Prims.strcat @@ -289,27 +264,67 @@ let (format_failed_goal : (Prims.strcat "Failed to prove the following goals:\n " (Prims.strcat - uu___2 + uu___10 "\nThe remaining conjuncts in the separation logic context available for use are:\n ")) (Prims.strcat x "\nThe typing context is:\n ")) (Prims.strcat - x1 "\n"))))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac + x1 "\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (41)) + (Prims.of_int (2)) + (Prims.of_int (50)) + (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (41)) + (Prims.of_int (2)) + (Prims.of_int (50)) + (Prims.of_int (21))))) + (Obj.magic + uu___8) + (fun uu___9 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> + uu___10 + -> + uu___9 + uu___7)))) + uu___7) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (41)) + (Prims.of_int (2)) + (Prims.of_int (50)) + (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (41)) + (Prims.of_int (2)) + (Prims.of_int (50)) + (Prims.of_int (21))))) + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - uu___1 uu___)))) - uu___))) uu___))) uu___))) - uu___) + (fun uu___7 -> + uu___6 uu___4)))) + uu___4))) uu___3))) uu___2))) + uu___1) let (mk_arrow : FStar_Reflection_Types.term -> FStar_Reflection_Types.typ -> FStar_Reflection_Types.term) @@ -343,6 +358,19 @@ let (intro_comp_typing : fun res_typing -> fun x -> fun post_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun uu___1 -> + (fun uu___1 -> + fun st -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing.STC + (g, st, x, (), (), ())))) uu___2 + uu___1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -354,21 +382,12 @@ let (intro_comp_typing : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (71)) (Prims.of_int (4)) (Prims.of_int (80)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - fun uu___ -> - (fun uu___ -> - fun st -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.STC - (g, st, x, (), (), ())))) uu___1 - uu___)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun intro_st_comp_typing -> match c with | Pulse_Syntax_Base.C_ST st -> + let uu___1 = intro_st_comp_typing st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -387,12 +406,13 @@ let (intro_comp_typing : (Prims.of_int (6)) (Prims.of_int (74)) (Prims.of_int (19))))) - (Obj.magic (intro_st_comp_typing st)) + (Obj.magic uu___1) (fun stc -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> Pulse_Typing.CT_ST (g, st, stc)))) | Pulse_Syntax_Base.C_STAtomic (i, obs, st) -> + let uu___1 = intro_st_comp_typing st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -411,13 +431,14 @@ let (intro_comp_typing : (Prims.of_int (6)) (Prims.of_int (77)) (Prims.of_int (40))))) - (Obj.magic (intro_st_comp_typing st)) + (Obj.magic uu___1) (fun stc -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> Pulse_Typing.CT_STAtomic (g, i, obs, st, (), stc)))) | Pulse_Syntax_Base.C_STGhost (i, st) -> + let uu___1 = intro_st_comp_typing st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -436,12 +457,12 @@ let (intro_comp_typing : (Prims.of_int (6)) (Prims.of_int (80)) (Prims.of_int (35))))) - (Obj.magic (intro_st_comp_typing st)) + (Obj.magic uu___1) (fun stc -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> Pulse_Typing.CT_STGhost - (g, i, st, (), stc))))) uu___) + (g, i, st, (), stc))))) uu___1) type ('a1, 'a2) effect_annot_labels_match = Obj.t let (fstar_equiv_preserves_typing : FStar_Reflection_Types.env -> @@ -463,6 +484,64 @@ let (check_effect_annot : = fun g -> fun e -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + fun opens -> + let uu___2 = + Pulse_Checker_Pure.check_term g opens + FStar_TypeChecker_Core.E_Total + Pulse_Syntax_Pure.tm_inames in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Base.fst" + (Prims.of_int (108)) (Prims.of_int (25)) + (Prims.of_int (108)) (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Base.fst" + (Prims.of_int (107)) (Prims.of_int (75)) + (Prims.of_int (115)) (Prims.of_int (53))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with + | Prims.Mkdtuple2 (opens1, d) -> + let uu___4 = + FStar_Tactics_V2_Builtins.norm_well_typed_term + (Pulse_Typing.elab_env g) + [FStar_Pervasives.primops; + FStar_Pervasives.iota; + FStar_Pervasives.zeta; + FStar_Pervasives.delta_attr + ["Pulse.Lib.Core.unfold_check_opens"]] + opens1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (110)) + (Prims.of_int (6)) + (Prims.of_int (113)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (115)) + (Prims.of_int (4)) + (Prims.of_int (115)) + (Prims.of_int (53))))) + (Obj.magic uu___4) + (fun opens' -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.Mkdtuple2 (opens', ()))))) + uu___3))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -473,74 +552,21 @@ let (check_effect_annot : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (117)) (Prims.of_int (2)) (Prims.of_int (127)) - (Prims.of_int (47))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun opens -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (108)) (Prims.of_int (25)) - (Prims.of_int (108)) (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (107)) (Prims.of_int (75)) - (Prims.of_int (115)) (Prims.of_int (53))))) - (Obj.magic - (Pulse_Checker_Pure.check_term g opens - FStar_TypeChecker_Core.E_Total - Pulse_Syntax_Pure.tm_inames)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with - | Prims.Mkdtuple2 (opens1, d) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (110)) - (Prims.of_int (6)) - (Prims.of_int (113)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (115)) - (Prims.of_int (4)) - (Prims.of_int (115)) - (Prims.of_int (53))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_well_typed_term - (Pulse_Typing.elab_env g) - [FStar_Pervasives.primops; - FStar_Pervasives.iota; - FStar_Pervasives.zeta; - FStar_Pervasives.delta_attr - ["Pulse.Lib.Core.unfold_check_opens"]] - opens1)) - (fun opens' -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.Mkdtuple2 (opens', ()))))) - uu___1))) - (fun uu___ -> + (Prims.of_int (47))))) (Obj.magic uu___) + (fun uu___1 -> (fun check_opens -> match e with | Pulse_Syntax_Base.EffectAnnotSTT -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Prims.Mkdtuple2 (e, (Obj.repr ()))))) + (fun uu___1 -> Prims.Mkdtuple2 (e, (Obj.repr ()))))) | Pulse_Syntax_Base.EffectAnnotGhost { Pulse_Syntax_Base.opens = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = check_opens opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -553,11 +579,11 @@ let (check_effect_annot : "Pulse.Checker.Base.fst" (Prims.of_int (119)) (Prims.of_int (33)) (Prims.of_int (121)) (Prims.of_int (39))))) - (Obj.magic (check_opens opens)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | Prims.Mkdtuple2 (opens1, d) -> Prims.Mkdtuple2 ((Pulse_Syntax_Base.EffectAnnotGhost @@ -569,7 +595,8 @@ let (check_effect_annot : { Pulse_Syntax_Base.opens1 = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = check_opens opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -582,11 +609,11 @@ let (check_effect_annot : "Pulse.Checker.Base.fst" (Prims.of_int (122)) (Prims.of_int (34)) (Prims.of_int (124)) (Prims.of_int (40))))) - (Obj.magic (check_opens opens)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | Prims.Mkdtuple2 (opens1, d) -> Prims.Mkdtuple2 ((Pulse_Syntax_Base.EffectAnnotAtomic @@ -598,7 +625,8 @@ let (check_effect_annot : { Pulse_Syntax_Base.opens2 = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = check_opens opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -611,18 +639,18 @@ let (check_effect_annot : "Pulse.Checker.Base.fst" (Prims.of_int (125)) (Prims.of_int (41)) (Prims.of_int (127)) (Prims.of_int (47))))) - (Obj.magic (check_opens opens)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | Prims.Mkdtuple2 (opens1, d) -> Prims.Mkdtuple2 ((Pulse_Syntax_Base.EffectAnnotAtomicOrGhost { Pulse_Syntax_Base.opens2 = opens1 - }), (Obj.repr ()))))))) uu___) + }), (Obj.repr ()))))))) uu___1) let (intro_post_hint : Pulse_Typing_Env.env -> Pulse_Syntax_Base.effect_annot -> @@ -635,6 +663,10 @@ let (intro_post_hint : fun effect_annot -> fun ret_ty_opt -> fun post -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing_Env.fresh g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -646,10 +678,19 @@ let (intro_post_hint : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (130)) (Prims.of_int (20)) (Prims.of_int (149)) (Prims.of_int (72))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing_Env.fresh g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun x -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + match ret_ty_opt with + | FStar_Pervasives_Native.None -> + Pulse_Syntax_Pure.wr + FStar_Reflection_Typing.unit_ty + FStar_Range.range_0 + | FStar_Pervasives_Native.Some t -> t)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -662,16 +703,12 @@ let (intro_post_hint : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (135)) (Prims.of_int (4)) (Prims.of_int (149)) (Prims.of_int (72))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - match ret_ty_opt with - | FStar_Pervasives_Native.None -> - Pulse_Syntax_Pure.wr - FStar_Reflection_Typing.unit_ty - FStar_Range.range_0 - | FStar_Pervasives_Native.Some t -> t)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ret_ty -> + let uu___2 = + Pulse_Checker_Pure.instantiate_term_implicits + g ret_ty FStar_Pervasives_Native.None in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -690,13 +727,14 @@ let (intro_post_hint : (Prims.of_int (4)) (Prims.of_int (149)) (Prims.of_int (72))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g ret_ty FStar_Pervasives_Native.None)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (ret_ty1, uu___1) -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with + | (ret_ty1, uu___4) -> + let uu___5 = + Pulse_Checker_Pure.check_universe + g ret_ty1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -715,14 +753,22 @@ let (intro_post_hint : (Prims.of_int (64)) (Prims.of_int (149)) (Prims.of_int (72))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - g ret_ty1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Prims.Mkdtuple2 (u, ty_typing) -> + let uu___7 = + Pulse_Checker_Pure.check_slprop + (Pulse_Typing_Env.push_binding + g x + Pulse_Syntax_Base.ppname_default + ret_ty1) + (Pulse_Syntax_Naming.open_term_nv + post + (Pulse_Syntax_Base.v_as_nv + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -742,26 +788,27 @@ let (intro_post_hint : (Prims.of_int (149)) (Prims.of_int (72))))) (Obj.magic - (Pulse_Checker_Pure.check_slprop - (Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - ret_ty1) - (Pulse_Syntax_Naming.open_term_nv - post - (Pulse_Syntax_Base.v_as_nv - x)))) - (fun uu___3 + uu___7) + (fun uu___8 -> (fun - uu___3 -> - match uu___3 + uu___8 -> + match uu___8 with | Prims.Mkdtuple2 (post1, post_typing) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Syntax_Naming.close_term + post1 x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -780,15 +827,18 @@ let (intro_post_hint : (Prims.of_int (47)) (Prims.of_int (149)) (Prims.of_int (72))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Naming.close_term - post1 x)) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun post' -> + let uu___10 + = + check_effect_annot + g + effect_annot in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -808,15 +858,15 @@ let (intro_post_hint : (Prims.of_int (149)) (Prims.of_int (72))))) (Obj.magic - (check_effect_annot - g - effect_annot)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | Prims.Mkdtuple2 @@ -847,10 +897,10 @@ let (intro_post_hint : Pulse_Typing.post_typing = () })))) - uu___4))) - uu___3))) - uu___2))) uu___))) - uu___))) uu___) + uu___10))) + uu___8))) + uu___6))) uu___3))) + uu___2))) uu___1) let (comp_typing_as_effect_annot_typing : Pulse_Typing_Env.env -> Pulse_Syntax_Base.comp_st -> @@ -907,6 +957,10 @@ let (comp_typing_from_post_hint : fun c -> fun pre_typing -> fun p -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing_Env.fresh g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -918,9 +972,8 @@ let (comp_typing_from_post_hint : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (184)) (Prims.of_int (2)) (Prims.of_int (190)) (Prims.of_int (33))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing_Env.fresh g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun x -> if FStar_Set.mem x @@ -930,27 +983,32 @@ let (comp_typing_from_post_hint : (Pulse_Typing_Env.fail g FStar_Pervasives_Native.None "Impossible: unexpected freevar in post, please file a bug-report") else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (186)) (Prims.of_int (25)) - (Prims.of_int (186)) (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (187)) (Prims.of_int (7)) - (Prims.of_int (190)) (Prims.of_int (33))))) + (let uu___2 = + Obj.magic (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.post_hint_typing g p x)) - (fun uu___1 -> - (fun post_typing -> - Obj.magic - (intro_comp_typing g c () - post_typing.Pulse_Typing.effect_annot_typing1 - () x ())) uu___1))) uu___) + (fun uu___3 -> + Pulse_Typing.post_hint_typing g p x)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (186)) (Prims.of_int (25)) + (Prims.of_int (186)) (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (187)) (Prims.of_int (7)) + (Prims.of_int (190)) (Prims.of_int (33))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun post_typing -> + Obj.magic + (intro_comp_typing g c () + post_typing.Pulse_Typing.effect_annot_typing1 + () x ())) uu___3)))) uu___1) let (extend_post_hint : Pulse_Typing_Env.env -> unit Pulse_Typing.post_hint_for_env -> @@ -1039,6 +1097,7 @@ let (k_elab_trans : fun k1 -> fun post_hint -> fun res -> + let uu___ = k1 post_hint res in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1050,10 +1109,10 @@ let (k_elab_trans : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (240)) (Prims.of_int (26)) (Prims.of_int (240)) (Prims.of_int (57))))) - (Obj.magic (k1 post_hint res)) - (fun uu___ -> - (fun uu___ -> Obj.magic (k0 post_hint uu___)) - uu___) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> Obj.magic (k0 post_hint uu___1)) + uu___1) let (comp_st_with_post : Pulse_Syntax_Base.comp_st -> Pulse_Syntax_Base.term -> Pulse_Syntax_Base.comp_st) @@ -1298,6 +1357,10 @@ let (k_elab_equiv_continuation : fun d -> fun post_hint -> fun res -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> res)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1309,11 +1372,15 @@ let (k_elab_equiv_continuation : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (349)) (Prims.of_int (22)) (Prims.of_int (354)) (Prims.of_int (34))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> res)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (st, c, st_d) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> st_d)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1332,10 +1399,15 @@ let (k_elab_equiv_continuation : (Prims.of_int (33)) (Prims.of_int (354)) (Prims.of_int (34))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> st_d)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun st_d1 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + st_equiv_pre g2 st c + st_d1 ctxt1 ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1354,11 +1426,8 @@ let (k_elab_equiv_continuation : (Prims.of_int (4)) (Prims.of_int (354)) (Prims.of_int (34))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - st_equiv_pre g2 st c - st_d1 ctxt1 ())) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun st_d' -> Obj.magic (k post_hint @@ -1367,8 +1436,8 @@ let (k_elab_equiv_continuation : (comp_with_pre c ctxt1), st_d')))) - uu___1))) uu___1))) - uu___) + uu___4))) uu___3))) + uu___1) let (k_elab_equiv_prefix : Pulse_Typing_Env.env -> @@ -1388,6 +1457,12 @@ let (k_elab_equiv_prefix : fun d -> fun post_hint -> fun res -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + FStar_Pervasives.Mkdtuple3 + (Pulse_Syntax_Pure.tm_emp, (), ()))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1399,12 +1474,10 @@ let (k_elab_equiv_prefix : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (373)) (Prims.of_int (4)) (Prims.of_int (377)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_Pervasives.Mkdtuple3 - (Pulse_Syntax_Pure.tm_emp, (), ()))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun framing_token -> + let uu___1 = k post_hint res in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1423,17 +1496,17 @@ let (k_elab_equiv_prefix : (Prims.of_int (30)) (Prims.of_int (377)) (Prims.of_int (35))))) - (Obj.magic (k post_hint res)) + (Obj.magic uu___1) (fun res1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> match res1 with | FStar_Pervasives.Mkdtuple3 (st, c, st_d) -> FStar_Pervasives.Mkdtuple3 (st, (comp_with_pre c ctxt2), (st_equiv_pre g1 st c st_d - ctxt2 ())))))) uu___) + ctxt2 ())))))) uu___1) let (k_elab_equiv : Pulse_Typing_Env.env -> Pulse_Typing_Env.env -> @@ -1516,6 +1589,11 @@ let (continuation_elaborator_with_bind : | (ppname, x1) -> (fun post_hint -> fun res -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 + -> res)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1533,17 +1611,22 @@ let (continuation_elaborator_with_bind : (Prims.of_int (24)) (Prims.of_int (464)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - res)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 (e2, c2, e2_typing) -> + let uu___5 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___6 -> + e2_typing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1562,15 +1645,21 @@ let (continuation_elaborator_with_bind : (Prims.of_int (53)) (Prims.of_int (464)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - e2_typing)) + (Obj.magic + uu___5) (fun - uu___4 -> + uu___6 -> (fun e2_typing1 -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Syntax_Naming.close_st_term + e2 x1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1589,13 +1678,10 @@ let (continuation_elaborator_with_bind : (Prims.of_int (4)) (Prims.of_int (464)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Naming.close_st_term - e2 x1)) + (Obj.magic + uu___6) (fun - uu___4 -> + uu___7 -> (fun e2_closed -> @@ -1616,6 +1702,11 @@ let (continuation_elaborator_with_bind : FStar_Pervasives_Native.None "Impossible: freevar clash when constructing continuation elaborator for bind, please file a bug-report") else + (let uu___8 + = + Pulse_Typing_Combinators.bind_res_and_post_typing + g c2 x1 + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1635,19 +1726,28 @@ let (continuation_elaborator_with_bind : (Prims.of_int (464)) (Prims.of_int (5))))) (Obj.magic - (Pulse_Typing_Combinators.bind_res_and_post_typing - g c2 x1 - post_hint)) + uu___8) (fun - uu___5 -> + uu___9 -> (fun - uu___5 -> - match uu___5 + uu___9 -> + match uu___9 with | (t_typing, post_typing) -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Env.push_context + g + "mk_bind" + e1.Pulse_Syntax_Base.range1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1666,17 +1766,30 @@ let (continuation_elaborator_with_bind : (Prims.of_int (50)) (Prims.of_int (463)) (Prims.of_int (26))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing_Env.push_context - g - "mk_bind" - e1.Pulse_Syntax_Base.range1)) + (Obj.magic + uu___10) (fun - uu___6 -> + uu___11 + -> (fun g1 -> + let uu___11 + = + Pulse_Typing_Combinators.mk_bind + g1 + (Pulse_Syntax_Pure.tm_star + ctxt + (Pulse_Syntax_Base.comp_pre + c1)) e1 + e2_closed + c11 c2 + (ppname, + x1) + e1_typing1 + () + e2_typing1 + () () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1696,27 +1809,15 @@ let (continuation_elaborator_with_bind : (Prims.of_int (463)) (Prims.of_int (26))))) (Obj.magic - (Pulse_Typing_Combinators.mk_bind - g1 - (Pulse_Syntax_Pure.tm_star - ctxt - (Pulse_Syntax_Base.comp_pre - c1)) e1 - e2_closed - c11 c2 - (ppname, - x1) - e1_typing1 - () - e2_typing1 - () () - post_hint)) + uu___11) (fun - uu___6 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - match uu___6 + uu___13 + -> + match uu___12 with | FStar_Pervasives.Mkdtuple3 @@ -1726,11 +1827,11 @@ let (continuation_elaborator_with_bind : FStar_Pervasives.Mkdtuple3 (e, c, e_typing))))) + uu___11))) + uu___9)))) + uu___7))) uu___6))) - uu___5))) - uu___4))) - uu___4))) - uu___3))))))) + uu___4))))))) uu___6 uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let coerce_eq : 'a 'b . 'a -> unit -> 'b = fun uu___1 -> fun uu___ -> (fun x -> fun uu___ -> Obj.magic x) uu___1 uu___ @@ -1789,6 +1890,18 @@ let (continuation_elaborator_with_bind_fn : match uu___1 with | FStar_Pervasives.Mkdtuple3 (e2, c2, d2) -> + let uu___2 = + if + FStar_Pervasives_Native.uu___is_None + post_hint + then + Obj.magic + (FStar_Tactics_V2_Derived.fail + "bind_fn: expects the post_hint to be set") + else + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1806,17 +1919,14 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (78)) (Prims.of_int (561)) (Prims.of_int (18))))) - (if - FStar_Pervasives_Native.uu___is_None - post_hint - then - FStar_Tactics_V2_Derived.fail - "bind_fn: expects the post_hint to be set" - else - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> ())) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 + -> x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1835,19 +1945,25 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (78)) (Prims.of_int (561)) (Prims.of_int (18))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - x)) - (fun uu___3 + (Obj.magic + uu___4) + (fun uu___5 -> (fun - uu___3 -> - match uu___3 + uu___5 -> + match uu___5 with | (ppname, x1) -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Syntax_Naming.close_st_term + e2 x1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1866,37 +1982,19 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (55)) (Prims.of_int (561)) (Prims.of_int (18))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Naming.close_st_term - e2 x1)) + (Obj.magic + uu___6) (fun - uu___4 -> + uu___7 -> (fun e2_closed -> + let uu___7 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (540)) - (Prims.of_int (12)) - (Prims.of_int (540)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (540)) - (Prims.of_int (68)) - (Prims.of_int (561)) - (Prims.of_int (18))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> Pulse_Typing.wrst c2 (Pulse_Syntax_Base.Tm_Bind @@ -1908,20 +2006,17 @@ let (continuation_elaborator_with_bind_fn : Pulse_Syntax_Base.body1 = e2_closed - }))) - (fun - uu___4 -> - (fun e -> + }))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (541)) - (Prims.of_int (29)) - (Prims.of_int (541)) - (Prims.of_int (94))))) + (Prims.of_int (540)) + (Prims.of_int (12)) + (Prims.of_int (540)) + (Prims.of_int (65))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1930,42 +2025,54 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (68)) (Prims.of_int (561)) (Prims.of_int (18))))) + (Obj.magic + uu___7) + (fun + uu___8 -> + (fun e -> + let uu___8 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> Pulse_Typing_Metatheory_Base.st_typing_correctness_ctot g e1 c1 - e1_typing)) - (fun - uu___4 -> - (fun - uu___4 -> - match uu___4 - with - | - Prims.Mkdtuple2 - (u, - c1_typing) - -> + e1_typing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (543)) - (Prims.of_int (6)) - (Prims.of_int (556)) - (Prims.of_int (37))))) + (Prims.of_int (541)) + (Prims.of_int (29)) + (Prims.of_int (541)) + (Prims.of_int (94))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Base.fst" - (Prims.of_int (561)) - (Prims.of_int (4)) + (Prims.of_int (540)) + (Prims.of_int (68)) (Prims.of_int (561)) (Prims.of_int (18))))) - (match c2 + (Obj.magic + uu___8) + (fun + uu___9 -> + (fun + uu___9 -> + match uu___9 + with + | + Prims.Mkdtuple2 + (u, + c1_typing) + -> + let uu___10 + = + match c2 with | Pulse_Syntax_Base.C_ST @@ -1974,7 +2081,8 @@ let (continuation_elaborator_with_bind_fn : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___11 + -> Pulse_Typing.CT_ST (g, (Pulse_Syntax_Base.st_comp_of_comp @@ -1989,7 +2097,18 @@ let (continuation_elaborator_with_bind_fn : st) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + st_comp_typing_with_post_hint + g ctxt () + post_hint + c2)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2006,17 +2125,19 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (75)) (Prims.of_int (551)) (Prims.of_int (42))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - st_comp_typing_with_post_hint - g ctxt () - post_hint - c2)) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun stc -> + let uu___12 + = + Pulse_Checker_Pure.core_check_term + g i + FStar_TypeChecker_Core.E_Total + Pulse_Syntax_Pure.tm_inames in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2036,30 +2157,34 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (551)) (Prims.of_int (42))))) (Obj.magic - (Pulse_Checker_Pure.core_check_term - g i - FStar_TypeChecker_Core.E_Total - Pulse_Syntax_Pure.tm_inames)) + uu___12) (fun i_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___13 + -> Pulse_Typing.CT_STAtomic (g, i, obs, (Pulse_Syntax_Base.st_comp_of_comp c2), (), stc))))) - uu___5))) + uu___12))) | Pulse_Syntax_Base.C_STGhost (i, st) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + Pulse_Checker_Pure.core_check_term + g i + FStar_TypeChecker_Core.E_Total + Pulse_Syntax_Pure.tm_inames in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2077,16 +2202,14 @@ let (continuation_elaborator_with_bind_fn : (Prims.of_int (556)) (Prims.of_int (37))))) (Obj.magic - (Pulse_Checker_Pure.core_check_term - g i - FStar_TypeChecker_Core.E_Total - Pulse_Syntax_Pure.tm_inames)) + uu___11) (fun i_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___12 + -> Pulse_Typing.CT_STGhost (g, i, (Pulse_Syntax_Base.st_comp_of_comp @@ -2094,13 +2217,34 @@ let (continuation_elaborator_with_bind_fn : (st_comp_typing_with_post_hint g ctxt () post_hint - c2))))))) + c2)))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (543)) + (Prims.of_int (6)) + (Prims.of_int (556)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (561)) + (Prims.of_int (4)) + (Prims.of_int (561)) + (Prims.of_int (18))))) + (Obj.magic + uu___10) (fun c2_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___11 + -> FStar_Pervasives.Mkdtuple3 (e, c2, (Pulse_Typing.T_BindFn @@ -2112,11 +2256,11 @@ let (continuation_elaborator_with_bind_fn : (), (), d2, c2_typing))))))) - uu___4))) - uu___4))) - uu___4))) - uu___3))) - uu___2)))) uu___7 + uu___9))) + uu___8))) + uu___7))) + uu___5))) + uu___3)))) uu___7 uu___6 uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let rec (check_equiv_emp : Pulse_Typing_Env.env -> @@ -2344,7 +2488,12 @@ let (match_comp_res_with_post_hint : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___9 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + Pulse_Syntax_Base.comp_res c)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2361,10 +2510,8 @@ let (match_comp_res_with_post_hint : (Prims.of_int (4)) (Prims.of_int (657)) (Prims.of_int (51))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> - Pulse_Syntax_Base.comp_res c)) - (fun uu___9 -> + (Obj.magic uu___9) + (fun uu___10 -> (fun cres -> if Pulse_Syntax_Base.eq_tm cres @@ -2373,13 +2520,16 @@ let (match_comp_res_with_post_hint : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> + (fun uu___10 -> FStar_Pervasives.Mkdtuple3 (t, c, d)))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___11 = + Pulse_Checker_Pure.check_equiv + g cres ret_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2396,35 +2546,21 @@ let (match_comp_res_with_post_hint : (Prims.of_int (9)) (Prims.of_int (657)) (Prims.of_int (51))))) - (Obj.magic - (Pulse_Checker_Pure.check_equiv - g cres ret_ty)) - (fun uu___10 -> - (fun uu___10 -> - match uu___10 with + (Obj.magic uu___11) + (fun uu___12 -> + (fun uu___12 -> + match uu___12 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (641)) - (Prims.of_int (13)) - (Prims.of_int (643)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (640)) - (Prims.of_int (11)) - (Prims.of_int (643)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.term_to_string + ret_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2442,34 +2578,20 @@ let (match_comp_res_with_post_hint : (Prims.of_int (643)) (Prims.of_int (42))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ret_ty)) + uu___14) (fun - uu___11 + uu___15 -> (fun - uu___11 + uu___15 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (641)) - (Prims.of_int (13)) - (Prims.of_int (643)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (641)) - (Prims.of_int (13)) - (Prims.of_int (643)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___16 + = + let uu___17 + = + Pulse_Syntax_Printer.term_to_string + cres in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2487,54 +2609,92 @@ let (match_comp_res_with_post_hint : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - cres)) + uu___17) (fun - uu___12 + uu___18 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___19 -> fun x -> Prims.strcat (Prims.strcat "Could not prove equiv for computed type " (Prims.strcat - uu___12 + uu___18 " and expected type ")) (Prims.strcat - x ""))))) + x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (641)) + (Prims.of_int (13)) + (Prims.of_int (643)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (641)) + (Prims.of_int (13)) + (Prims.of_int (643)) + (Prims.of_int (42))))) + (Obj.magic + uu___16) (fun - uu___12 + uu___17 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___18 -> - uu___12 - uu___11)))) - uu___11))) + uu___17 + uu___15)))) + uu___15) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (641)) + (Prims.of_int (13)) + (Prims.of_int (643)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Base.fst" + (Prims.of_int (640)) + (Prims.of_int (11)) + (Prims.of_int (643)) + (Prims.of_int (42))))) + (Obj.magic + uu___13) (fun - uu___11 + uu___14 -> (fun - uu___11 + uu___14 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___11)) - uu___11))) + uu___14)) + uu___14))) | FStar_Pervasives_Native.Some tok -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___13 -> match Pulse_Typing_Metatheory_Base.st_comp_typing_inversion @@ -2622,7 +2782,7 @@ let (match_comp_res_with_post_hint : ret_ty, ())), (), ()))))))))) - uu___10)))) uu___9)))) + uu___12)))) uu___10)))) uu___4 uu___3 uu___2 uu___1 uu___ let (apply_checker_result_k : Pulse_Typing_Env.env -> @@ -2638,6 +2798,8 @@ let (apply_checker_result_k : fun post_hint -> fun r -> fun res_ppname -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> r)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2649,15 +2811,17 @@ let (apply_checker_result_k : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (662)) (Prims.of_int (55)) (Prims.of_int (672)) (Prims.of_int (22))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> r)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple5 (y, g1, FStar_Pervasives.Mkdtuple3 (u_ty, ty_y, d_ty_y), Prims.Mkdtuple2 - (pre', uu___1), k) + (pre', uu___2), k) -> + let uu___3 = + Pulse_Checker_Pure.check_universe g1 ty_y in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2676,12 +2840,20 @@ let (apply_checker_result_k : (Prims.of_int (68)) (Prims.of_int (672)) (Prims.of_int (22))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe g1 ty_y)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (u_ty_y, d_ty_y1) -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + return_in_ctxt g1 y + res_ppname u_ty_y ty_y + pre' () + (FStar_Pervasives_Native.Some + post_hint))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2700,20 +2872,14 @@ let (apply_checker_result_k : (Prims.of_int (2)) (Prims.of_int (672)) (Prims.of_int (22))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - return_in_ctxt g1 y - res_ppname u_ty_y ty_y - pre' () - (FStar_Pervasives_Native.Some - post_hint))) - (fun uu___3 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun d -> Obj.magic (k (FStar_Pervasives_Native.Some post_hint) d)) - uu___3))) uu___2))) uu___) + uu___6))) uu___4))) uu___1) let (checker_result_for_st_typing : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop -> @@ -2728,6 +2894,8 @@ let (checker_result_for_st_typing : fun post_hint -> fun d -> fun ppname -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> d)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2739,11 +2907,15 @@ let (checker_result_for_st_typing : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (678)) (Prims.of_int (47)) (Prims.of_int (710)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> d)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (t, c, d1) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> Pulse_Typing_Env.fresh g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2762,10 +2934,16 @@ let (checker_result_for_st_typing : (Prims.of_int (20)) (Prims.of_int (710)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Pulse_Typing_Env.fresh g)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun x -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing_Env.push_binding g + x ppname + (Pulse_Syntax_Base.comp_res c))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2784,13 +2962,16 @@ let (checker_result_for_st_typing : (Prims.of_int (50)) (Prims.of_int (710)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_binding g - x ppname - (Pulse_Syntax_Base.comp_res c))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun g' -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Syntax_Naming.open_term_nv + (Pulse_Syntax_Base.comp_post + c) (ppname, x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2809,13 +2990,15 @@ let (checker_result_for_st_typing : (Prims.of_int (55)) (Prims.of_int (710)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Naming.open_term_nv - (Pulse_Syntax_Base.comp_post - c) (ppname, x))) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ctxt' -> + let uu___5 = + continuation_elaborator_with_bind + g + Pulse_Syntax_Pure.tm_emp + c t d1 () + (ppname, x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2837,16 +3020,11 @@ let (checker_result_for_st_typing : (Prims.of_int (710)) (Prims.of_int (66))))) (Obj.magic - (continuation_elaborator_with_bind - g - Pulse_Syntax_Pure.tm_emp - c t d1 () - (ppname, - x))) + uu___5) (fun k -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___6 -> match Pulse_Typing_Metatheory_Base.st_comp_typing_inversion_cofinite g @@ -2860,7 +3038,7 @@ let (checker_result_for_st_typing : with | (comp_res_typing, - uu___2, + uu___7, f) -> FStar_Pervasives.Mkdtuple5 (x, g', @@ -2885,8 +3063,8 @@ let (checker_result_for_st_typing : Pulse_Syntax_Pure.tm_emp) ctxt' k () ())))))) - uu___1))) uu___1))) - uu___1))) uu___) + uu___5))) uu___4))) + uu___3))) uu___1) let (readback_comp_res_as_comp : FStar_Tactics_NamedView.comp -> Pulse_Syntax_Base.comp FStar_Pervasives_Native.option) @@ -2959,7 +3137,9 @@ let rec (is_stateful_arrow : c_res) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + FStar_Tactics_NamedView.inspect c_res in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2976,15 +3156,20 @@ let rec (is_stateful_arrow : (Prims.of_int (6)) (Prims.of_int (778)) (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_NamedView.inspect c_res)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ht -> match ht with | FStar_Tactics_NamedView.Tv_Arrow (b, c1) -> (match args with | [] -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + FStar_Reflection_V2_Collect.collect_arr_ln_bs + c_res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3003,13 +3188,10 @@ let rec (is_stateful_arrow : (Prims.of_int (16)) (Prims.of_int (747)) (Prims.of_int (9))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_Reflection_V2_Collect.collect_arr_ln_bs - c_res)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (bs, c2) -> if FStar_List_Tot_Base.for_all @@ -3034,10 +3216,20 @@ let rec (is_stateful_arrow : ( FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___4 -> FStar_Pervasives_Native.None)))) - uu___)) + uu___2)) | (arg, qual)::args' -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + match b.FStar_Tactics_NamedView.qual + with + | FStar_Reflection_V2_Data.Q_Equality + -> + FStar_Reflection_V2_Data.Q_Explicit + | q -> q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3056,20 +3248,13 @@ let rec (is_stateful_arrow : (Prims.of_int (10)) (Prims.of_int (767)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - match b.FStar_Tactics_NamedView.qual - with - | FStar_Reflection_V2_Data.Q_Equality - -> - FStar_Reflection_V2_Data.Q_Explicit - | q -> q)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun bqual -> match (bqual, qual) with | (FStar_Reflection_V2_Data.Q_Meta - uu___, + uu___2, FStar_Reflection_V2_Data.Q_Implicit) -> Obj.magic @@ -3106,7 +3291,7 @@ let rec (is_stateful_arrow : qual) :: out))) | (FStar_Reflection_V2_Data.Q_Meta - uu___, + uu___2, FStar_Reflection_V2_Data.Q_Explicit) -> Obj.magic @@ -3126,15 +3311,22 @@ let rec (is_stateful_arrow : (readback_comp_res_as_comp c1) args out)) - | uu___ -> + | uu___2 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___3 -> FStar_Pervasives_Native.None)))) - uu___))) - | uu___ -> + uu___2))) + | uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_RuntimeUtils.whnf_lax + (Pulse_Typing.elab_env g) + c_res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3153,13 +3345,12 @@ let rec (is_stateful_arrow : (Prims.of_int (54)) (Prims.of_int (778)) (Prims.of_int (17))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.whnf_lax - (Pulse_Typing.elab_env - g) c_res)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun c_res' -> + let uu___3 = + FStar_Tactics_NamedView.inspect + c_res' in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3178,10 +3369,8 @@ let rec (is_stateful_arrow : (Prims.of_int (8)) (Prims.of_int (778)) (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_NamedView.inspect - c_res')) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun ht1 -> if FStar_Tactics_NamedView.uu___is_Tv_Arrow @@ -3189,7 +3378,17 @@ let rec (is_stateful_arrow : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___5 -> + Pulse_Syntax_Pure.wr + c_res' + (FStar_Reflection_V2_Builtins.range_of_term + c_res'))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3206,15 +3405,10 @@ let rec (is_stateful_arrow : (Prims.of_int (10)) (Prims.of_int (776)) (Prims.of_int (60))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - Pulse_Syntax_Pure.wr - c_res' - (FStar_Reflection_V2_Builtins.range_of_term - c_res'))) + (Obj.magic + uu___4) (fun - uu___1 -> + uu___5 -> (fun c_res'1 -> @@ -3225,17 +3419,17 @@ let rec (is_stateful_arrow : (Pulse_Syntax_Base.C_Tot c_res'1)) args out)) - uu___1))) + uu___5))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___5 -> FStar_Pervasives_Native.None)))) - uu___1))) - uu___1))) uu___)))) uu___3 - uu___2 uu___1 uu___ + uu___4))) + uu___3))) uu___1)))) + uu___3 uu___2 uu___1 uu___ let (checker_result_t_equiv_ctxt : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop -> @@ -3267,6 +3461,10 @@ let (is_stateful_application : = fun g -> fun e -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> FStar_Reflection_V2_Collect.collect_app_ln e)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3278,11 +3476,10 @@ let (is_stateful_application : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (791)) (Prims.of_int (28)) (Prims.of_int (812)) (Prims.of_int (15))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> FStar_Reflection_V2_Collect.collect_app_ln e)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (head, args) -> (match Pulse_RuntimeUtils.lax_check_term_with_unknown_universes (Pulse_Typing.elab_env g) head @@ -3291,11 +3488,18 @@ let (is_stateful_application : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pervasives_Native.None))) + (fun uu___2 -> FStar_Pervasives_Native.None))) | FStar_Pervasives_Native.Some ht -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Syntax_Pure.wr ht + (FStar_Reflection_V2_Builtins.range_of_term + ht))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3312,13 +3516,14 @@ let (is_stateful_application : (Prims.of_int (4)) (Prims.of_int (812)) (Prims.of_int (15))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Pure.wr ht - (FStar_Reflection_V2_Builtins.range_of_term - ht))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun head_t -> + let uu___3 = + is_stateful_arrow g + (FStar_Pervasives_Native.Some + (Pulse_Syntax_Base.C_Tot head_t)) + args [] in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3337,15 +3542,11 @@ let (is_stateful_application : (Prims.of_int (4)) (Prims.of_int (812)) (Prims.of_int (15))))) - (Obj.magic - (is_stateful_arrow g - (FStar_Pervasives_Native.Some - (Pulse_Syntax_Base.C_Tot - head_t)) args [])) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___5 -> + match uu___4 with | FStar_Pervasives_Native.None -> FStar_Pervasives_Native.None @@ -3380,7 +3581,7 @@ let (is_stateful_application : FStar_Pervasives_Native.Some Pulse_Syntax_Base.Implicit | - uu___3 -> + uu___6 -> FStar_Pervasives_Native.None)); Pulse_Syntax_Base.arg = @@ -3397,9 +3598,9 @@ let (is_stateful_application : = Pulse_Syntax_Base.default_effect_hint } - | uu___3 -> + | uu___6 -> FStar_Pervasives_Native.None)))) - uu___1))))) uu___) + uu___3))))) uu___1) let (norm_typing : Pulse_Typing_Env.env -> @@ -3417,6 +3618,9 @@ let (norm_typing : fun t0 -> fun d -> fun steps -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3428,9 +3632,13 @@ let (norm_typing : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (836)) (Prims.of_int (6)) (Prims.of_int (841)) (Prims.of_int (15))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun u_t_typing -> + let uu___1 = + Pulse_RuntimeUtils.norm_well_typed_term + (Pulse_Typing.elab_env g) t0 + FStar_TypeChecker_Core.E_Total () () steps in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3445,17 +3653,14 @@ let (norm_typing : "Pulse.Checker.Base.fst" (Prims.of_int (836)) (Prims.of_int (6)) (Prims.of_int (841)) (Prims.of_int (15))))) - (Obj.magic - (Pulse_RuntimeUtils.norm_well_typed_term - (Pulse_Typing.elab_env g) t0 - FStar_TypeChecker_Core.E_Total () () steps)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | FStar_Pervasives.Mkdtuple3 (t', t'_typing, related_t_t') -> - Prims.Mkdtuple2 (t', ()))))) uu___) + Prims.Mkdtuple2 (t', ()))))) uu___1) let (norm_typing_inverse : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3478,6 +3683,30 @@ let (norm_typing_inverse : fun u -> fun d1 -> fun steps -> + let uu___ = + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> ())) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Base.fst" + (Prims.of_int (853)) (Prims.of_int (15)) + (Prims.of_int (853)) (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Base.fst" + (Prims.of_int (854)) (Prims.of_int (6)) + (Prims.of_int (854)) (Prims.of_int (54))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun d11 -> + Obj.magic + (Pulse_RuntimeUtils.norm_well_typed_term + (Pulse_Typing.elab_env g) t1 + FStar_TypeChecker_Core.E_Total () () steps)) + uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3489,33 +3718,11 @@ let (norm_typing_inverse : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (852)) (Prims.of_int (3)) (Prims.of_int (861)) (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (853)) (Prims.of_int (15)) - (Prims.of_int (853)) (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Base.fst" - (Prims.of_int (854)) (Prims.of_int (6)) - (Prims.of_int (854)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ())) - (fun uu___ -> - (fun d11 -> - Obj.magic - (Pulse_RuntimeUtils.norm_well_typed_term - (Pulse_Typing.elab_env g) t1 - FStar_TypeChecker_Core.E_Total () () - steps)) uu___))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (t1', t1'_typing, related_t1_t1') -> if FStar_Reflection_TermEq.term_eq t0 t1' @@ -3542,6 +3749,9 @@ let (norm_st_typing_inverse : fun t1 -> fun d1 -> fun steps -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3553,9 +3763,13 @@ let (norm_st_typing_inverse : (FStar_Range.mk_range "Pulse.Checker.Base.fst" (Prims.of_int (875)) (Prims.of_int (6)) (Prims.of_int (894)) (Prims.of_int (13))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun d11 -> + let uu___1 = + Pulse_RuntimeUtils.norm_well_typed_term + (Pulse_Typing.elab_env g) t1 + FStar_TypeChecker_Core.E_Total () () steps in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3574,15 +3788,11 @@ let (norm_st_typing_inverse : (Prims.of_int (6)) (Prims.of_int (894)) (Prims.of_int (13))))) - (Obj.magic - (Pulse_RuntimeUtils.norm_well_typed_term - (Pulse_Typing.elab_env g) t1 - FStar_TypeChecker_Core.E_Total () () - steps)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | FStar_Pervasives.Mkdtuple3 (t1', t1'_typing, related_t1_t1') -> @@ -3600,4 +3810,4 @@ let (norm_st_typing_inverse : (Pulse_Typing.ST_TotEquiv (g, t0, t1, u, (), ())))) else FStar_Pervasives_Native.None)))) - uu___) \ No newline at end of file + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Bind.ml b/src/ocaml/plugin/generated/Pulse_Checker_Bind.ml index 51dd6ebb0..6bcd854d4 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Bind.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Bind.ml @@ -17,6 +17,10 @@ let (check_bind_fn : fun res_ppname -> fun t -> fun check -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -28,18 +32,19 @@ let (check_bind_fn : (FStar_Range.mk_range "Pulse.Checker.Bind.fst" (Prims.of_int (43)) Prims.int_one (Prims.of_int (63)) (Prims.of_int (74))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_Bind { Pulse_Syntax_Base.binder = binder; Pulse_Syntax_Base.head1 = head; Pulse_Syntax_Base.body1 = body;_} -> (match head.Pulse_Syntax_Base.term1 with - | Pulse_Syntax_Base.Tm_Abs uu___1 -> + | Pulse_Syntax_Base.Tm_Abs uu___2 -> + let uu___3 = + Pulse_Checker_Abs.check_abs g head check in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -58,14 +63,30 @@ let (check_bind_fn : (Prims.of_int (16)) (Prims.of_int (62)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_Checker_Abs.check_abs g head - check)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 (t1, c, head_typing) -> + let uu___5 = + if + Prims.op_Negation + (Pulse_Syntax_Base.uu___is_C_Tot + c) + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + (t1.Pulse_Syntax_Base.range1)) + "check_bind_fn: head is not a total abstraction")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -84,26 +105,30 @@ let (check_bind_fn : (Prims.of_int (4)) (Prims.of_int (61)) (Prims.of_int (45))))) - (if - Prims.op_Negation - (Pulse_Syntax_Base.uu___is_C_Tot - c) - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - (t1.Pulse_Syntax_Base.range1)) - "check_bind_fn: head is not a total abstraction")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> ())))) - (fun uu___3 -> - (fun uu___3 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + if + FStar_Pervasives_Native.uu___is_None + post_hint + then + Obj.magic + (Obj.repr + ( + Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + (t1.Pulse_Syntax_Base.range1)) + "check_bind: please annotate the postcondition")) + else + Obj.magic + (Obj.repr + ( + FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -122,28 +147,21 @@ let (check_bind_fn : (Prims.of_int (79)) (Prims.of_int (61)) (Prims.of_int (45))))) - (if - FStar_Pervasives_Native.uu___is_None - post_hint - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - (t1.Pulse_Syntax_Base.range1)) - "check_bind: please annotate the postcondition")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - ())))) - (fun uu___4 + (Obj.magic + uu___7) + (fun uu___8 -> (fun - uu___4 -> + uu___8 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Typing_Env.fresh + g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -162,14 +180,31 @@ let (check_bind_fn : (Prims.of_int (22)) (Prims.of_int (61)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing_Env.fresh - g)) + (Obj.magic + uu___9) (fun - uu___5 -> + uu___10 + -> (fun x -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + { + Pulse_Syntax_Base.binder_ty + = + (Pulse_Syntax_Base.comp_res + c); + Pulse_Syntax_Base.binder_ppname + = + (binder.Pulse_Syntax_Base.binder_ppname); + Pulse_Syntax_Base.binder_attrs + = + (binder.Pulse_Syntax_Base.binder_attrs) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -188,24 +223,23 @@ let (check_bind_fn : (Prims.of_int (53)) (Prims.of_int (61)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___10) (fun - uu___5 -> - { - Pulse_Syntax_Base.binder_ty - = - (Pulse_Syntax_Base.comp_res - c); - Pulse_Syntax_Base.binder_ppname - = - (binder.Pulse_Syntax_Base.binder_ppname); - Pulse_Syntax_Base.binder_attrs + uu___11 + -> + (fun b -> + let uu___11 = - (binder.Pulse_Syntax_Base.binder_attrs) - })) + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - (fun b -> + uu___12 + -> + Pulse_Typing_Env.push_binding + g x + binder.Pulse_Syntax_Base.binder_ppname + b.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -224,17 +258,20 @@ let (check_bind_fn : (Prims.of_int (67)) (Prims.of_int (61)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing_Env.push_binding - g x - binder.Pulse_Syntax_Base.binder_ppname - b.Pulse_Syntax_Base.binder_ty)) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun g' -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -253,15 +290,24 @@ let (check_bind_fn : (Prims.of_int (73)) (Prims.of_int (61)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - ())) + (Obj.magic + uu___12) (fun - uu___5 -> + uu___13 + -> (fun ctxt_typing' -> + let uu___13 + = + check g' + ctxt () + post_hint + res_ppname + (Pulse_Syntax_Naming.open_st_term_nv + body + ((binder.Pulse_Syntax_Base.binder_ppname), + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -281,17 +327,19 @@ let (check_bind_fn : (Prims.of_int (61)) (Prims.of_int (45))))) (Obj.magic - (check g' - ctxt () - post_hint - res_ppname - (Pulse_Syntax_Naming.open_st_term_nv - body - ((binder.Pulse_Syntax_Base.binder_ppname), - x)))) + uu___13) (fun - uu___5 -> + uu___14 + -> (fun r -> + let uu___14 + = + Pulse_Checker_Base.apply_checker_result_k + g' ctxt + (FStar_Pervasives_Native.__proj__Some__item__v + post_hint) + r + res_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -311,17 +359,21 @@ let (check_bind_fn : (Prims.of_int (61)) (Prims.of_int (45))))) (Obj.magic - (Pulse_Checker_Base.apply_checker_result_k - g' ctxt - (FStar_Pervasives_Native.__proj__Some__item__v - post_hint) - r - res_ppname)) + uu___14) (fun - uu___5 -> + uu___15 + -> (fun body_typing -> + let uu___15 + = + Pulse_Checker_Base.continuation_elaborator_with_bind_fn + g ctxt () + t1 c b + head_typing + ((binder.Pulse_Syntax_Base.binder_ppname), + x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -341,15 +393,16 @@ let (check_bind_fn : (Prims.of_int (61)) (Prims.of_int (45))))) (Obj.magic - (Pulse_Checker_Base.continuation_elaborator_with_bind_fn - g ctxt () - t1 c b - head_typing - ((binder.Pulse_Syntax_Base.binder_ppname), - x))) + uu___15) (fun - uu___5 -> + uu___16 + -> (fun k -> + let uu___16 + = + k + post_hint + body_typing in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -369,11 +422,10 @@ let (check_bind_fn : (Prims.of_int (61)) (Prims.of_int (45))))) (Obj.magic - (k - post_hint - body_typing)) + uu___16) (fun - uu___5 -> + uu___17 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -381,23 +433,23 @@ let (check_bind_fn : post_hint d res_ppname)) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___4))) - uu___3))) uu___2)) - | uu___1 -> + uu___17))) + uu___16))) + uu___15))) + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10))) + uu___8))) + uu___6))) uu___4)) + | uu___2 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) "check_bind_fn: head is not an abstraction"))) - uu___) + uu___1) let (check_bind : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -416,6 +468,12 @@ let (check_bind : fun res_ppname -> fun t -> fun check -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_bind" + t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -427,12 +485,36 @@ let (check_bind : (FStar_Range.mk_range "Pulse.Checker.Bind.fst" (Prims.of_int (79)) (Prims.of_int (2)) (Prims.of_int (131)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_bind" - t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Pulse_Checker_Prover_Util.debug_prover g1 + (fun uu___2 -> + let uu___3 = + Pulse_Syntax_Printer.st_term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (80)) + (Prims.of_int (42)) + (Prims.of_int (80)) + (Prims.of_int (65))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.strcat "checking bind:\n" + (Prims.strcat uu___4 "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -447,37 +529,25 @@ let (check_bind : "Pulse.Checker.Bind.fst" (Prims.of_int (82)) (Prims.of_int (2)) (Prims.of_int (131)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover g1 - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (80)) - (Prims.of_int (42)) - (Prims.of_int (80)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.st_term_to_string - t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "checking bind:\n" - (Prims.strcat uu___1 "\n")))))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + if + FStar_Pervasives_Native.uu___is_None + post_hint + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g1 + (FStar_Pervasives_Native.Some + (t.Pulse_Syntax_Base.range1)) + "check_bind: post hint is not set, please add an annotation")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -496,23 +566,14 @@ let (check_bind : (Prims.of_int (90)) (Prims.of_int (131)) (Prims.of_int (3))))) - (if - FStar_Pervasives_Native.uu___is_None - post_hint - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g1 - (FStar_Pervasives_Native.Some - (t.Pulse_Syntax_Base.range1)) - "check_bind: post hint is not set, please add an annotation")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -531,12 +592,10 @@ let (check_bind : (Prims.of_int (90)) (Prims.of_int (131)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - t.Pulse_Syntax_Base.term1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Pulse_Syntax_Base.Tm_Bind { Pulse_Syntax_Base.binder @@ -569,26 +628,16 @@ let (check_bind : res_ppname t check) else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (95)) - (Prims.of_int (55)) - (Prims.of_int (120)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (94)) - (Prims.of_int (7)) - (Prims.of_int (131)) - (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + let uu___10 + = + check g1 + ctxt () + FStar_Pervasives_Native.None + binder.Pulse_Syntax_Base.binder_ppname + e1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -606,14 +655,19 @@ let (check_bind : (Prims.of_int (120)) (Prims.of_int (7))))) (Obj.magic - (check g1 - ctxt () - FStar_Pervasives_Native.None - binder.Pulse_Syntax_Base.binder_ppname - e1)) + uu___10) (fun - uu___5 -> + uu___11 + -> (fun r -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + binder.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -632,33 +686,16 @@ let (check_bind : (Prims.of_int (6)) (Prims.of_int (120)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - binder.Pulse_Syntax_Base.binder_ty)) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun ty -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (99)) - (Prims.of_int (12)) - (Prims.of_int (118)) - (Prims.of_int (11))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (96)) - (Prims.of_int (10)) - (Prims.of_int (96)) - (Prims.of_int (11))))) - (match + let uu___12 + = + match Pulse_Syntax_Pure.inspect_term ty with @@ -669,13 +706,18 @@ let (check_bind : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - ()))) + uu___13 + -> ()))) | - uu___5 -> + uu___13 + -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___14 + = + Pulse_Checker_Pure.compute_tot_term_type + g1 ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -693,20 +735,28 @@ let (check_bind : (Prims.of_int (118)) (Prims.of_int (11))))) (Obj.magic - (Pulse_Checker_Pure.compute_tot_term_type - g1 ty)) + uu___14) (fun - uu___6 -> + uu___15 + -> (fun - uu___6 -> - match uu___6 + uu___15 + -> + match uu___15 with | FStar_Pervasives.Mkdtuple3 (ty1, - uu___7, - uu___8) + uu___16, + uu___17) -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> r)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -725,26 +775,26 @@ let (check_bind : (Prims.of_int (58)) (Prims.of_int (118)) (Prims.of_int (11))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - r)) + (Obj.magic + uu___18) (fun - uu___9 -> + uu___19 + -> (fun - uu___9 -> - match uu___9 + uu___19 + -> + match uu___19 with | FStar_Pervasives.Mkdtuple5 - (uu___10, - uu___11, + (uu___20, + uu___21, FStar_Pervasives.Mkdtuple3 - (uu___12, + (uu___22, t1, - uu___13), - uu___14, - uu___15) + uu___23), + uu___24, + uu___25) -> if Prims.op_Negation @@ -753,33 +803,58 @@ let (check_bind : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___26 + = + let uu___27 + = + let uu___28 + = + let uu___29 + = + Pulse_PP.pp + Pulse_PP.printable_term + ty1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (114)) - (Prims.of_int (37)) - (Prims.of_int (118)) - (Prims.of_int (11))))) + (Prims.of_int (116)) + (Prims.of_int (42)) + (Prims.of_int (116)) + (Prims.of_int (49))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (114)) - (Prims.of_int (10)) - (Prims.of_int (118)) - (Prims.of_int (11))))) + (Prims.of_int (116)) + (Prims.of_int (12)) + (Prims.of_int (116)) + (Prims.of_int (49))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___29) + (fun + uu___30 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___31 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Expected:") + uu___30)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (114)) - (Prims.of_int (37)) - (Prims.of_int (118)) - (Prims.of_int (11))))) + (Prims.of_int (116)) + (Prims.of_int (12)) + (Prims.of_int (116)) + (Prims.of_int (49))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -789,64 +864,81 @@ let (check_bind : (Prims.of_int (118)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (116)) - (Prims.of_int (12)) - (Prims.of_int (116)) - (Prims.of_int (49))))) + uu___28) + (fun + uu___29 + -> + (fun + uu___29 + -> + let uu___30 + = + let uu___31 + = + let uu___32 + = + Pulse_PP.pp + Pulse_PP.printable_term + t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (114)) + (Prims.of_int (117)) (Prims.of_int (37)) - (Prims.of_int (118)) - (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (116)) - (Prims.of_int (42)) - (Prims.of_int (116)) - (Prims.of_int (49))))) + (Prims.of_int (117)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (116)) + (Prims.of_int (117)) (Prims.of_int (12)) - (Prims.of_int (116)) - (Prims.of_int (49))))) + (Prims.of_int (117)) + (Prims.of_int (43))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - ty1)) + uu___32) (fun - uu___16 + uu___33 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___17 + uu___34 -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "Expected:") - uu___16)))) + "Got:") + uu___33)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (117)) + (Prims.of_int (12)) + (Prims.of_int (117)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (114)) + (Prims.of_int (37)) + (Prims.of_int (118)) + (Prims.of_int (11))))) + (Obj.magic + uu___31) (fun - uu___16 + uu___32 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___16 + uu___33 -> + [uu___32])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -866,15 +958,27 @@ let (check_bind : (Prims.of_int (118)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___30) + (fun + uu___31 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___32 + -> + uu___29 + :: + uu___31)))) + uu___29) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (117)) - (Prims.of_int (12)) - (Prims.of_int (117)) - (Prims.of_int (43))))) + (Prims.of_int (114)) + (Prims.of_int (37)) + (Prims.of_int (118)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -884,114 +988,134 @@ let (check_bind : (Prims.of_int (118)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27) + (fun + uu___28 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___29 + -> + (Pulse_PP.text + "Type mismatch (NB: this is a syntactic check)") + :: + uu___28)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (117)) + (Prims.of_int (114)) (Prims.of_int (37)) - (Prims.of_int (117)) - (Prims.of_int (43))))) + (Prims.of_int (118)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (117)) - (Prims.of_int (12)) - (Prims.of_int (117)) - (Prims.of_int (43))))) + (Prims.of_int (114)) + (Prims.of_int (10)) + (Prims.of_int (118)) + (Prims.of_int (11))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t1)) + uu___26) (fun - uu___17 + uu___27 -> - FStar_Tactics_Effect.lift_div_tac (fun - uu___18 - -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Got:") - uu___17)))) - (fun - uu___17 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___18 - -> - [uu___17])))) - (fun - uu___17 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___18 - -> - uu___16 - :: - uu___17)))) - uu___16))) - (fun - uu___16 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___17 - -> - (Pulse_PP.text - "Type mismatch (NB: this is a syntactic check)") - :: - uu___16)))) - (fun - uu___16 - -> - (fun - uu___16 + uu___27 -> Obj.magic (Pulse_Typing_Env.fail_doc g1 (FStar_Pervasives_Native.Some (e1.Pulse_Syntax_Base.range1)) - uu___16)) - uu___16))) + uu___27)) + uu___27))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___17 + uu___27 -> ())))) - uu___9))) - uu___6)))) + uu___19))) + uu___15))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (99)) + (Prims.of_int (12)) + (Prims.of_int (118)) + (Prims.of_int (11))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (96)) + (Prims.of_int (10)) + (Prims.of_int (96)) + (Prims.of_int (11))))) + (Obj.magic + uu___12) (fun - uu___5 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - r)))) - uu___5))) - uu___5))) + uu___14 + -> r)))) + uu___12))) + uu___11) in + Obj.magic + ( + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (95)) + (Prims.of_int (55)) + (Prims.of_int (120)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (94)) + (Prims.of_int (7)) + (Prims.of_int (131)) + (Prims.of_int (3))))) + (Obj.magic + uu___9) (fun - uu___5 -> + uu___10 + -> (fun - uu___5 -> - match uu___5 + uu___10 + -> + match uu___10 with | FStar_Pervasives.Mkdtuple5 (x, g11, - uu___6, + uu___11, Prims.Mkdtuple2 (ctxt', ctxt'_typing), k1) -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing_Env.reset_context + g11 g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1010,35 +1134,25 @@ let (check_bind : (Prims.of_int (34)) (Prims.of_int (130)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing_Env.reset_context - g11 g1)) + (Obj.magic + uu___12) (fun - uu___7 -> + uu___13 + -> (fun g12 -> + let uu___13 + = + let uu___14 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (123)) - (Prims.of_int (50)) - (Prims.of_int (127)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (127)) - (Prims.of_int (69)) - (Prims.of_int (130)) - (Prims.of_int (45))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_bind_c")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1055,15 +1169,23 @@ let (check_bind : (Prims.of_int (50)) (Prims.of_int (127)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_bind_c")) + (Obj.magic + uu___14) (fun - uu___7 -> + uu___15 + -> (fun ppname -> + let uu___15 + = + check g12 + ctxt' () + post_hint + ppname + (Pulse_Syntax_Naming.open_st_term_nv + e2 + ((binder.Pulse_Syntax_Base.binder_ppname), + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1083,17 +1205,10 @@ let (check_bind : (Prims.of_int (127)) (Prims.of_int (66))))) (Obj.magic - (check - g12 ctxt' - () - post_hint - ppname - (Pulse_Syntax_Naming.open_st_term_nv - e2 - ((binder.Pulse_Syntax_Base.binder_ppname), - x)))) + uu___15) (fun - uu___7 -> + uu___16 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k @@ -1101,11 +1216,37 @@ let (check_bind : (FStar_Pervasives_Native.__proj__Some__item__v post_hint) r ppname)) - uu___7))) - uu___7))) + uu___16))) + uu___15) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (123)) + (Prims.of_int (50)) + (Prims.of_int (127)) + (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (127)) + (Prims.of_int (69)) + (Prims.of_int (130)) + (Prims.of_int (45))))) + (Obj.magic + uu___13) (fun - uu___7 -> + uu___14 + -> (fun d -> + let uu___14 + = + k1 + post_hint + d in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1125,11 +1266,10 @@ let (check_bind : (Prims.of_int (130)) (Prims.of_int (45))))) (Obj.magic - (k1 - post_hint - d)) + uu___14) (fun - uu___7 -> + uu___15 + -> (fun d1 -> Obj.magic @@ -1138,12 +1278,12 @@ let (check_bind : post_hint d1 res_ppname)) - uu___7))) - uu___7))) - uu___7))) - uu___5))) - uu___2))) uu___1))) - uu___))) uu___) + uu___15))) + uu___14))) + uu___13))) + uu___10)))) + uu___6))) uu___4))) + uu___2))) uu___1) let (check_tot_bind : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1162,6 +1302,12 @@ let (check_tot_bind : fun res_ppname -> fun t -> fun check -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_tot_bind" + t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1173,12 +1319,23 @@ let (check_tot_bind : (FStar_Range.mk_range "Pulse.Checker.Bind.fst" (Prims.of_int (145)) (Prims.of_int (2)) (Prims.of_int (161)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_tot_bind" - t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + if FStar_Pervasives_Native.uu___is_None post_hint + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g1 + (FStar_Pervasives_Native.Some + (t.Pulse_Syntax_Base.range1)) + "check_tot_bind: post hint is not set, please add an annotation")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1195,23 +1352,14 @@ let (check_tot_bind : (Prims.of_int (146)) (Prims.of_int (94)) (Prims.of_int (161)) (Prims.of_int (3))))) - (if - FStar_Pervasives_Native.uu___is_None - post_hint - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g1 - (FStar_Pervasives_Native.Some - (t.Pulse_Syntax_Base.range1)) - "check_tot_bind: post hint is not set, please add an annotation")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1230,12 +1378,10 @@ let (check_tot_bind : (Prims.of_int (94)) (Prims.of_int (161)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - t.Pulse_Syntax_Base.term1)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Pulse_Syntax_Base.Tm_TotBind { Pulse_Syntax_Base.binder1 @@ -1245,6 +1391,9 @@ let (check_tot_bind : Pulse_Syntax_Base.body2 = e2;_} -> + let uu___5 = + Pulse_Checker_Base.is_stateful_application + g1 e1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1263,36 +1412,18 @@ let (check_tot_bind : (Prims.of_int (2)) (Prims.of_int (161)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_Checker_Base.is_stateful_application - g1 e1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | FStar_Pervasives_Native.Some st_app -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (152)) - (Prims.of_int (14)) - (Prims.of_int (152)) - (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (153)) - (Prims.of_int (4)) - (Prims.of_int (153)) - (Prims.of_int (60))))) + let uu___7 = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> { Pulse_Syntax_Base.term1 = @@ -1311,9 +1442,29 @@ let (check_tot_bind : Pulse_Syntax_Base.effect_tag = (t.Pulse_Syntax_Base.effect_tag) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (152)) + (Prims.of_int (14)) + (Prims.of_int (152)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (153)) + (Prims.of_int (4)) + (Prims.of_int (153)) + (Prims.of_int (60))))) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> (fun t1 -> Obj.magic @@ -1322,9 +1473,24 @@ let (check_tot_bind : post_hint res_ppname t1 check)) - uu___3)) + uu___8)) | FStar_Pervasives_Native.None -> + let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + Pulse_Syntax_Base.Tm_Return + { + Pulse_Syntax_Base.expected_type + = + (b.Pulse_Syntax_Base.binder_ty); + Pulse_Syntax_Base.insert_eq + = true; + Pulse_Syntax_Base.term + = e1 + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1343,44 +1509,18 @@ let (check_tot_bind : (Prims.of_int (88)) (Prims.of_int (160)) (Prims.of_int (60))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Syntax_Base.Tm_Return - { - Pulse_Syntax_Base.expected_type - = - (b.Pulse_Syntax_Base.binder_ty); - Pulse_Syntax_Base.insert_eq - = true; - Pulse_Syntax_Base.term - = e1 - })) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> (fun head -> + let uu___8 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (158)) - (Prims.of_int (17)) - (Prims.of_int (158)) - (Prims.of_int (107))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Bind.fst" - (Prims.of_int (158)) - (Prims.of_int (112)) - (Prims.of_int (160)) - (Prims.of_int (60))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___9 -> { Pulse_Syntax_Base.term1 = head; @@ -1391,32 +1531,38 @@ let (check_tot_bind : Pulse_Syntax_Base.effect_tag = Pulse_Syntax_Base.default_effect_hint - })) - (fun - uu___3 -> - (fun - head1 -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (159)) - (Prims.of_int (14)) - (Prims.of_int (159)) - (Prims.of_int (63))))) + (Prims.of_int (158)) + (Prims.of_int (17)) + (Prims.of_int (158)) + (Prims.of_int (107))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Bind.fst" - (Prims.of_int (160)) - (Prims.of_int (4)) + (Prims.of_int (158)) + (Prims.of_int (112)) (Prims.of_int (160)) (Prims.of_int (60))))) + (Obj.magic + uu___8) + (fun + uu___9 -> + (fun + head1 -> + let uu___9 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> { Pulse_Syntax_Base.term1 = @@ -1435,9 +1581,30 @@ let (check_tot_bind : Pulse_Syntax_Base.effect_tag = (t.Pulse_Syntax_Base.effect_tag) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (159)) + (Prims.of_int (14)) + (Prims.of_int (159)) + (Prims.of_int (63))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Bind.fst" + (Prims.of_int (160)) + (Prims.of_int (4)) + (Prims.of_int (160)) + (Prims.of_int (60))))) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> (fun t1 -> Obj.magic @@ -1446,8 +1613,8 @@ let (check_tot_bind : post_hint res_ppname t1 check)) - uu___3))) - uu___3))) - uu___3))) - uu___2))) uu___1))) - uu___))) uu___) \ No newline at end of file + uu___10))) + uu___9))) + uu___8))) + uu___6))) uu___4))) + uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Comp.ml b/src/ocaml/plugin/generated/Pulse_Checker_Comp.ml index df8b92ff4..83e5de757 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Comp.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Comp.ml @@ -9,6 +9,11 @@ let (check : fun g -> fun c -> fun pre_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context_no_range g "check_comp")) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -20,57 +25,84 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (30)) (Prims.of_int (69)) (Prims.of_int (80)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context_no_range g "check_comp")) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (37)) (Prims.of_int (7)) - (Prims.of_int (58)) (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (60)) (Prims.of_int (4)) - (Prims.of_int (80)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun st -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (37)) - (Prims.of_int (27)) - (Prims.of_int (37)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (37)) - (Prims.of_int (7)) - (Prims.of_int (58)) - (Prims.of_int (9))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe g1 - st.Pulse_Syntax_Base.res)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with - | Prims.Mkdtuple2 (u, t_u) -> - if - Prims.op_Negation - (Pulse_Syntax_Base.eq_univ u - (Pulse_Syntax_Base.comp_u c)) - then - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun st -> + let uu___3 = + Pulse_Checker_Pure.check_universe g1 + st.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (37)) + (Prims.of_int (27)) + (Prims.of_int (37)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (37)) (Prims.of_int (7)) + (Prims.of_int (58)) (Prims.of_int (9))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with + | Prims.Mkdtuple2 (u, t_u) -> + if + Prims.op_Negation + (Pulse_Syntax_Base.eq_univ u + (Pulse_Syntax_Base.comp_u c)) + then + let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + Pulse_Syntax_Printer.term_to_string + st.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (41)) + (Prims.of_int (17)) + (Prims.of_int (41)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "check_comp: computed universe of " + (Prims.strcat + uu___9 + " as ")) + (Prims.strcat + x + ", whereas annotated as ")) + (Prims.strcat + x1 ""))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -83,108 +115,75 @@ let (check : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (39)) - (Prims.of_int (13)) + (Prims.of_int (40)) + (Prims.of_int (14)) (Prims.of_int (43)) (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (40)) - (Prims.of_int (14)) - (Prims.of_int (43)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (40)) - (Prims.of_int (14)) - (Prims.of_int (43)) - (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (40)) - (Prims.of_int (14)) - (Prims.of_int (43)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (40)) - (Prims.of_int (14)) - (Prims.of_int (43)) - (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (41)) - (Prims.of_int (17)) - (Prims.of_int (41)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - st.Pulse_Syntax_Base.res)) - (fun uu___2 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "check_comp: computed universe of " - (Prims.strcat - uu___2 - " as ")) - (Prims.strcat - x - ", whereas annotated as ")) - (Prims.strcat - x1 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> - uu___2 - (Pulse_Syntax_Printer.univ_to_string - u))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - (Pulse_Syntax_Printer.univ_to_string - (Pulse_Syntax_Base.comp_u - c)))))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (Pulse_Typing_Env.fail - g1 - FStar_Pervasives_Native.None - uu___2)) uu___2)) - else + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + uu___8 + (Pulse_Syntax_Printer.univ_to_string + u))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (40)) + (Prims.of_int (14)) + (Prims.of_int (43)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (40)) + (Prims.of_int (14)) + (Prims.of_int (43)) + (Prims.of_int (47))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 + (Pulse_Syntax_Printer.univ_to_string + (Pulse_Syntax_Base.comp_u + c)))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (40)) + (Prims.of_int (14)) + (Prims.of_int (43)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (39)) + (Prims.of_int (13)) + (Prims.of_int (43)) + (Prims.of_int (47))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + Obj.magic + (Pulse_Typing_Env.fail + g1 + FStar_Pervasives_Native.None + uu___6)) uu___6)) + else + (let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -203,12 +202,15 @@ let (check : (Prims.of_int (28)) (Prims.of_int (57)) (Prims.of_int (11))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Pulse_Typing_Env.fresh - g1)) - (fun uu___3 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun x -> + let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Pulse_Syntax_Base.v_as_nv + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -227,12 +229,19 @@ let (check : (Prims.of_int (57)) (Prims.of_int (57)) (Prims.of_int (11))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Pulse_Syntax_Base.v_as_nv - x)) - (fun uu___3 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun px -> + let uu___8 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Typing_Env.push_binding + g1 x + (FStar_Pervasives_Native.fst + px) + st.Pulse_Syntax_Base.res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -251,18 +260,19 @@ let (check : (Prims.of_int (54)) (Prims.of_int (57)) (Prims.of_int (11))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing_Env.push_binding - g1 x - (FStar_Pervasives_Native.fst - px) - st.Pulse_Syntax_Base.res)) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun gx -> + let uu___9 + = + Pulse_Checker_Pure.core_compute_tot_term_type + gx + (Pulse_Syntax_Naming.open_term_nv + (Pulse_Syntax_Base.comp_post + c) px) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -282,16 +292,14 @@ let (check : (Prims.of_int (57)) (Prims.of_int (11))))) (Obj.magic - (Pulse_Checker_Pure.core_compute_tot_term_type - gx - (Pulse_Syntax_Naming.open_term_nv - (Pulse_Syntax_Base.comp_post - c) px))) + uu___9) (fun - uu___3 -> + uu___10 + -> (fun - uu___3 -> - match uu___3 + uu___10 + -> + match uu___10 with | Prims.Mkdtuple2 @@ -306,25 +314,14 @@ let (check : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (53)) - (Prims.of_int (17)) - (Prims.of_int (53)) - (Prims.of_int (107))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (52)) - (Prims.of_int (15)) - (Prims.of_int (53)) - (Prims.of_int (107))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.term_to_string + (Pulse_Syntax_Base.comp_post + c) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -342,46 +339,83 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - (Pulse_Syntax_Base.comp_post - c))) + uu___12) (fun - uu___4 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___14 + -> Prims.strcat "check_comp: ill-typed postcondition " (Prims.strcat - uu___4 ""))))) + uu___13 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (53)) + (Prims.of_int (17)) + (Prims.of_int (53)) + (Prims.of_int (107))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (52)) + (Prims.of_int (15)) + (Prims.of_int (53)) + (Prims.of_int (107))))) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> (fun - uu___4 -> + uu___12 + -> Obj.magic (Pulse_Typing_Env.fail g1 FStar_Pervasives_Native.None - uu___4)) - uu___4))) + uu___12)) + uu___12))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___12 + -> Pulse_Typing.STC (g1, st, x, (), (), ()))))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) uu___1))) - (fun uu___ -> + uu___10))) + uu___9))) + uu___8))) + uu___7)))) uu___4))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Comp.fst" + (Prims.of_int (37)) (Prims.of_int (7)) + (Prims.of_int (58)) (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Comp.fst" + (Prims.of_int (60)) (Prims.of_int (4)) + (Prims.of_int (80)) (Prims.of_int (37))))) + (Obj.magic uu___1) + (fun uu___2 -> (fun check_st_comp -> match c with | Pulse_Syntax_Base.C_ST st -> + let uu___2 = check_st_comp st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -400,12 +434,13 @@ let (check : (Prims.of_int (6)) (Prims.of_int (63)) (Prims.of_int (19))))) - (Obj.magic (check_st_comp st)) + (Obj.magic uu___2) (fun stc -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___3 -> Pulse_Typing.CT_ST (g1, st, stc)))) | Pulse_Syntax_Base.C_STAtomic (i, obs, st) -> + let uu___2 = check_st_comp st in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -424,9 +459,12 @@ let (check : (Prims.of_int (35)) (Prims.of_int (71)) (Prims.of_int (45))))) - (Obj.magic (check_st_comp st)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun stc -> + let uu___3 = + Pulse_Checker_Pure.core_compute_tot_term_type + g1 i in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -445,12 +483,10 @@ let (check : (Prims.of_int (35)) (Prims.of_int (71)) (Prims.of_int (45))))) - (Obj.magic - (Pulse_Checker_Pure.core_compute_tot_term_type - g1 i)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (ty, i_typing) -> if @@ -461,25 +497,12 @@ let (check : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (69)) - (Prims.of_int (13)) - (Prims.of_int (70)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (68)) - (Prims.of_int (11)) - (Prims.of_int (70)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + let uu___6 + = + Pulse_Syntax_Printer.term_to_string + Pulse_Syntax_Pure.tm_inames in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -497,22 +520,26 @@ let (check : (Prims.of_int (70)) (Prims.of_int (88))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - Pulse_Syntax_Pure.tm_inames)) + uu___6) (fun - uu___1 -> + uu___7 -> (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___7 -> + let uu___8 + = + let uu___9 + = + Pulse_Syntax_Printer.term_to_string + ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (69)) - (Prims.of_int (13)) (Prims.of_int (70)) - (Prims.of_int (88))))) + (Prims.of_int (37)) + (Prims.of_int (70)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -522,30 +549,59 @@ let (check : (Prims.of_int (70)) (Prims.of_int (88))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.term_to_string + i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (70)) - (Prims.of_int (37)) + (Prims.of_int (16)) (Prims.of_int (70)) - (Prims.of_int (58))))) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (69)) - (Prims.of_int (13)) - (Prims.of_int (70)) - (Prims.of_int (88))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty)) + uu___12) (fun - uu___2 -> + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___14 + -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "check_comp (atomic): type of inames term " + (Prims.strcat + uu___13 + " is ")) + (Prims.strcat + x + ", expected ")) + (Prims.strcat + x1 ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -565,83 +621,90 @@ let (check : (Prims.of_int (70)) (Prims.of_int (88))))) (Obj.magic + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + uu___12 + uu___10)))) + uu___10) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" + (Prims.of_int (69)) + (Prims.of_int (13)) (Prims.of_int (70)) - (Prims.of_int (16)) - (Prims.of_int (70)) - (Prims.of_int (36))))) + (Prims.of_int (88))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.Comp.fst" + (Prims.of_int (69)) + (Prims.of_int (13)) + (Prims.of_int (70)) + (Prims.of_int (88))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - i)) + uu___8) (fun - uu___3 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "check_comp (atomic): type of inames term " - (Prims.strcat - uu___3 - " is ")) - (Prims.strcat - x - ", expected ")) - (Prims.strcat - x1 ""))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - uu___2 - uu___1)))) - uu___1))) + uu___10 + -> + uu___9 + uu___7)))) + uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (69)) + (Prims.of_int (13)) + (Prims.of_int (70)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (68)) + (Prims.of_int (11)) + (Prims.of_int (70)) + (Prims.of_int (88))))) + (Obj.magic + uu___5) (fun - uu___1 -> + uu___6 -> (fun - uu___1 -> + uu___6 -> Obj.magic (Pulse_Typing_Env.fail g1 FStar_Pervasives_Native.None - uu___1)) - uu___1))) + uu___6)) + uu___6))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___6 -> Pulse_Typing.CT_STAtomic (g1, i, obs, st, (), stc))))) - uu___))) uu___)) + uu___4))) uu___3)) | Pulse_Syntax_Base.C_STGhost (i, st) -> + let uu___2 = + Pulse_Checker_Pure.core_compute_tot_term_type + g1 i in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -660,87 +723,124 @@ let (check : (Prims.of_int (23)) (Prims.of_int (80)) (Prims.of_int (37))))) - (Obj.magic - (Pulse_Checker_Pure.core_compute_tot_term_type - g1 i)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | Prims.Mkdtuple2 (ty, i_typing) -> if Prims.op_Negation (Pulse_Syntax_Base.eq_tm ty Pulse_Syntax_Pure.tm_inames) then - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (76)) - (Prims.of_int (13)) - (Prims.of_int (77)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (75)) - (Prims.of_int (11)) - (Prims.of_int (77)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + let uu___4 = + let uu___5 = + Pulse_Syntax_Printer.term_to_string + Pulse_Syntax_Pure.tm_inames in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (77)) + (Prims.of_int (59)) + (Prims.of_int (77)) + (Prims.of_int (87))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (76)) + (Prims.of_int (13)) + (Prims.of_int (77)) + (Prims.of_int (88))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + Pulse_Syntax_Printer.term_to_string + ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (77)) - (Prims.of_int (59)) + (Prims.of_int (37)) (Prims.of_int (77)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (76)) (Prims.of_int (13)) (Prims.of_int (77)) (Prims.of_int (88))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - Pulse_Syntax_Pure.tm_inames)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___8) + (fun uu___9 -> + (fun uu___9 + -> + let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (76)) - (Prims.of_int (13)) (Prims.of_int (77)) - (Prims.of_int (88))))) + (Prims.of_int (16)) + (Prims.of_int (77)) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (76)) - (Prims.of_int (13)) - (Prims.of_int (77)) - (Prims.of_int (88))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "check_comp (ghost): type of inames term " + (Prims.strcat + uu___12 + " is ")) + (Prims.strcat + x + ", expected ")) + (Prims.strcat + x1 ""))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" + (Prims.of_int (76)) + (Prims.of_int (13)) (Prims.of_int (77)) - (Prims.of_int (37)) - (Prims.of_int (77)) - (Prims.of_int (58))))) + (Prims.of_int (88))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -750,119 +850,98 @@ let (check : (Prims.of_int (77)) (Prims.of_int (88))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty)) + uu___10) (fun - uu___2 -> + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + uu___12 + -> + uu___11 + uu___9)))) + uu___9) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (76)) (Prims.of_int (13)) (Prims.of_int (77)) (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" (Prims.of_int (76)) (Prims.of_int (13)) (Prims.of_int (77)) (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Comp.fst" - (Prims.of_int (77)) - (Prims.of_int (16)) - (Prims.of_int (77)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - i)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "check_comp (ghost): type of inames term " - (Prims.strcat - uu___3 - " is ")) - (Prims.strcat - x - ", expected ")) - (Prims.strcat - x1 ""))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (Pulse_Typing_Env.fail - g1 - FStar_Pervasives_Native.None - uu___1)) - uu___1)) - else + (Obj.magic + uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___9 -> + uu___8 + uu___6)))) + uu___6) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (79)) - (Prims.of_int (18)) - (Prims.of_int (79)) - (Prims.of_int (34))))) + (Prims.of_int (76)) + (Prims.of_int (13)) + (Prims.of_int (77)) + (Prims.of_int (88))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Comp.fst" - (Prims.of_int (80)) - (Prims.of_int (8)) - (Prims.of_int (80)) - (Prims.of_int (37))))) - (Obj.magic - (check_st_comp st)) - (fun stc -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Typing.CT_STGhost - (g1, i, st, - (), stc))))) - uu___))) uu___))) uu___) \ No newline at end of file + (Prims.of_int (75)) + (Prims.of_int (11)) + (Prims.of_int (77)) + (Prims.of_int (88))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + Obj.magic + (Pulse_Typing_Env.fail + g1 + FStar_Pervasives_Native.None + uu___5)) + uu___5)) + else + (let uu___5 = + check_st_comp st in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (79)) + (Prims.of_int (18)) + (Prims.of_int (79)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Comp.fst" + (Prims.of_int (80)) + (Prims.of_int (8)) + (Prims.of_int (80)) + (Prims.of_int (37))))) + (Obj.magic uu___5) + (fun stc -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Typing.CT_STGhost + (g1, i, st, + (), stc)))))) + uu___3))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Exists.ml b/src/ocaml/plugin/generated/Pulse_Checker_Exists.ml index c3ff29693..5aeeb6de0 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Exists.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Exists.ml @@ -5,6 +5,7 @@ let (terms_to_string : (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun t -> + let uu___ = FStar_Tactics_Util.map Pulse_Syntax_Printer.term_to_string t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -15,12 +16,10 @@ let (terms_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (41)) (Prims.of_int (4)) (Prims.of_int (41)) - (Prims.of_int (68))))) - (Obj.magic - (FStar_Tactics_Util.map Pulse_Syntax_Printer.term_to_string t)) - (fun uu___ -> + (Prims.of_int (68))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_String.concat "\n" uu___)) + (fun uu___2 -> FStar_String.concat "\n" uu___1)) let (check_elim_exists : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -37,6 +36,12 @@ let (check_elim_exists : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_elim_exists" + t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -48,12 +53,13 @@ let (check_elim_exists : (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (53)) (Prims.of_int (72)) (Prims.of_int (94)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_elim_exists" - t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -68,13 +74,18 @@ let (check_elim_exists : "Pulse.Checker.Exists.fst" (Prims.of_int (53)) (Prims.of_int (72)) (Prims.of_int (94)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_ElimExists { Pulse_Syntax_Base.p4 = t1;_} -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_RuntimeUtils.range_of_term + t1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -93,63 +104,65 @@ let (check_elim_exists : (Prims.of_int (51)) (Prims.of_int (94)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.range_of_term - t1)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun t_rng -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (58)) - (Prims.of_int (4)) - (Prims.of_int (76)) - (Prims.of_int (22))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (56)) - (Prims.of_int (51)) - (Prims.of_int (94)) - (Prims.of_int (55))))) - (match Pulse_Syntax_Pure.inspect_term - t1 - with - | Pulse_Syntax_Pure.Tm_Unknown - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (61)) - (Prims.of_int (15)) - (Prims.of_int (61)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (61)) - (Prims.of_int (36)) - (Prims.of_int (72)) - (Prims.of_int (41))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 + let uu___4 = + match Pulse_Syntax_Pure.inspect_term + t1 + with + | Pulse_Syntax_Pure.Tm_Unknown + -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Syntax_Pure.slprop_as_list + pre)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (61)) + (Prims.of_int (15)) + (Prims.of_int (61)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (61)) + (Prims.of_int (36)) + (Prims.of_int (72)) + (Prims.of_int (41))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun ts -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + FStar_List_Tot_Base.filter + (fun t2 -> - Pulse_Syntax_Pure.slprop_as_list - pre)) - (fun uu___1 -> - (fun ts -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + match + Pulse_Syntax_Pure.inspect_term + t2 + with + | + Pulse_Syntax_Pure.Tm_ExistsSL + (uu___8, + uu___9, + uu___10) + -> true + | + uu___8 -> + false) ts)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" @@ -157,7 +170,7 @@ let (check_elim_exists : (Prims.of_int (22)) (Prims.of_int (64)) (Prims.of_int (75))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" @@ -165,27 +178,10 @@ let (check_elim_exists : (Prims.of_int (6)) (Prims.of_int (72)) (Prims.of_int (41))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - FStar_List_Tot_Base.filter - (fun t2 - -> - match - Pulse_Syntax_Pure.inspect_term - t2 - with - | - Pulse_Syntax_Pure.Tm_ExistsSL - (uu___2, - uu___3, - uu___4) - -> true - | - uu___2 -> - false) ts)) - (fun - uu___1 -> + (Obj.magic + uu___6) + (fun + uu___7 -> (fun exist_tms -> @@ -198,32 +194,20 @@ let (check_elim_exists : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___7 -> Prims.Mkdtuple2 (one, ())))) | - uu___1 -> + uu___7 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (71)) - (Prims.of_int (10)) - (Prims.of_int (72)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (70)) - (Prims.of_int (8)) - (Prims.of_int (72)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + terms_to_string + exist_tms in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -241,72 +225,116 @@ let (check_elim_exists : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (terms_to_string - exist_tms)) + uu___9) (fun - uu___2 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___11 + -> Prims.strcat "Could not decide which exists term to eliminate: choices are\n" (Prims.strcat - uu___2 ""))))) + uu___10 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (71)) + (Prims.of_int (10)) + (Prims.of_int (72)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (70)) + (Prims.of_int (8)) + (Prims.of_int (72)) + (Prims.of_int (41))))) + (Obj.magic + uu___8) (fun - uu___2 -> + uu___9 -> (fun - uu___2 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some t_rng) - uu___2)) - uu___2)))) - uu___1))) - uu___1)) - | uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (75)) - (Prims.of_int (17)) - (Prims.of_int (75)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (74)) - (Prims.of_int (10)) - (Prims.of_int (76)) - (Prims.of_int (22))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g1 t1 - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 - -> - match uu___2 - with - | - (t2, - uu___3) - -> - Obj.magic - (Pulse_Checker_Pure.check_slprop + uu___9)) + uu___9)))) + uu___7))) + uu___6) + | uu___5 -> + let uu___6 = + Pulse_Checker_Pure.instantiate_term_implicits + g1 t1 + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (75)) + (Prims.of_int (17)) + (Prims.of_int (75)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (74)) + (Prims.of_int (10)) + (Prims.of_int (76)) + (Prims.of_int (22))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + match uu___7 + with + | (t2, uu___8) + -> + Obj.magic + ( + Pulse_Checker_Pure.check_slprop g1 t2)) - uu___2))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + uu___7) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (58)) + (Prims.of_int (4)) + (Prims.of_int (76)) + (Prims.of_int (22))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (56)) + (Prims.of_int (51)) + (Prims.of_int (94)) + (Prims.of_int (55))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | Prims.Mkdtuple2 (t2, t_typing) -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind ( @@ -328,15 +356,21 @@ let (check_elim_exists : (Prims.of_int (94)) (Prims.of_int (55))))) ( - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - uu___1)) + Obj.magic + uu___6) ( fun - uu___2 -> + uu___7 -> + (fun + uu___7 -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> + Pulse_Syntax_Pure.inspect_term + t2)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -355,59 +389,28 @@ let (check_elim_exists : (Prims.of_int (2)) (Prims.of_int (94)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Syntax_Pure.inspect_term - t2)) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun tv -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (80)) - (Prims.of_int (2)) - (Prims.of_int (83)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (83)) - (Prims.of_int (34)) - (Prims.of_int (94)) - (Prims.of_int (55))))) - (if + let uu___9 + = + if Prims.op_Negation (Pulse_Syntax_Pure.uu___is_Tm_ExistsSL tv) then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (82)) - (Prims.of_int (9)) - (Prims.of_int (83)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (81)) - (Prims.of_int (7)) - (Prims.of_int (83)) - (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + t2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -425,40 +428,91 @@ let (check_elim_exists : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t2)) + uu___11) (fun - uu___3 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> Prims.strcat "check_elim_exists: elim_exists argument " (Prims.strcat - uu___3 - " not an existential"))))) + uu___12 + " not an existential"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (82)) + (Prims.of_int (9)) + (Prims.of_int (83)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (81)) + (Prims.of_int (7)) + (Prims.of_int (83)) + (Prims.of_int (33))))) + (Obj.magic + uu___10) (fun - uu___3 -> + uu___11 + -> (fun - uu___3 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some t_rng) - uu___3)) - uu___3))) + uu___11)) + uu___11))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - ())))) + uu___11 + -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (80)) + (Prims.of_int (2)) + (Prims.of_int (83)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (83)) + (Prims.of_int (34)) + (Prims.of_int (94)) + (Prims.of_int (55))))) + (Obj.magic + uu___9) + (fun + uu___10 + -> (fun - uu___3 -> + uu___10 + -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___12 + -> tv)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -477,15 +531,15 @@ let (check_elim_exists : (Prims.of_int (34)) (Prims.of_int (94)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - tv)) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> (fun - uu___4 -> - match uu___4 + uu___12 + -> + match uu___12 with | Pulse_Syntax_Pure.Tm_ExistsSL @@ -494,10 +548,14 @@ let (check_elim_exists : Pulse_Syntax_Base.binder_ty = ty; Pulse_Syntax_Base.binder_ppname - = uu___5; + = uu___13; Pulse_Syntax_Base.binder_attrs - = uu___6;_}, + = uu___14;_}, p) -> + let uu___15 + = + Pulse_Checker_Pure.check_universe + g1 ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -517,13 +575,14 @@ let (check_elim_exists : (Prims.of_int (94)) (Prims.of_int (55))))) (Obj.magic - (Pulse_Checker_Pure.check_universe - g1 ty)) + uu___15) (fun - uu___7 -> + uu___16 + -> (fun - uu___7 -> - match uu___7 + uu___16 + -> + match uu___16 with | Prims.Mkdtuple2 @@ -534,8 +593,17 @@ let (check_elim_exists : Pulse_Syntax_Base.eq_univ u u' then + let uu___17 + = Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_Typing_Env.fresh + g1)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -552,14 +620,23 @@ let (check_elim_exists : (Prims.of_int (25)) (Prims.of_int (91)) (Prims.of_int (126))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - Pulse_Typing_Env.fresh - g1)) + (Obj.magic + uu___17) (fun - uu___8 -> + uu___18 + -> (fun x -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + Pulse_Typing.T_ElimExists + (g1, u, + ty, p, x, + (), ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -578,96 +655,102 @@ let (check_elim_exists : (Prims.of_int (7)) (Prims.of_int (91)) (Prims.of_int (126))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - Pulse_Typing.T_ElimExists - (g1, u, - ty, p, x, - (), ()))) + (Obj.magic + uu___18) (fun - uu___8 -> + uu___19 + -> (fun d -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___19 + = + let uu___20 + = + Pulse_Checker_Base.match_comp_res_with_post_hint + g1 + (Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_ElimExists + { + Pulse_Syntax_Base.p4 + = + (Pulse_Syntax_Pure.tm_exists_sl + u + (Pulse_Syntax_Base.as_binder + ty) p) + })) + (Pulse_Typing.comp_elim_exists + u ty p + (Pulse_Syntax_Base.v_as_nv + x)) d + post_hint in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (91)) - (Prims.of_int (23)) + (Prims.of_int (55)) (Prims.of_int (91)) - (Prims.of_int (110))))) + (Prims.of_int (98))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (91)) - (Prims.of_int (7)) + (Prims.of_int (23)) (Prims.of_int (91)) - (Prims.of_int (126))))) + (Prims.of_int (110))))) (Obj.magic + uu___20) + (fun + uu___21 + -> + (fun + uu___21 + -> + Obj.magic + (Pulse_Checker_Prover.try_frame_pre + false g + pre () + uu___21 + res_ppname)) + uu___21) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (91)) - (Prims.of_int (55)) + (Prims.of_int (23)) (Prims.of_int (91)) - (Prims.of_int (98))))) + (Prims.of_int (110))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (91)) - (Prims.of_int (23)) + (Prims.of_int (7)) (Prims.of_int (91)) - (Prims.of_int (110))))) + (Prims.of_int (126))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint - g1 - (Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_ElimExists - { - Pulse_Syntax_Base.p4 - = - (Pulse_Syntax_Pure.tm_exists_sl - u - (Pulse_Syntax_Base.as_binder - ty) p) - })) - (Pulse_Typing.comp_elim_exists - u ty p - (Pulse_Syntax_Base.v_as_nv - x)) d - post_hint)) + uu___19) (fun - uu___8 -> - (fun - uu___8 -> - Obj.magic - (Pulse_Checker_Prover.try_frame_pre - false g - pre () - uu___8 - res_ppname)) - uu___8))) - (fun - uu___8 -> + uu___20 + -> (fun - uu___8 -> + uu___20 + -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g pre - uu___8 + uu___20 post_hint t_rng)) - uu___8))) - uu___8))) - uu___8)) + uu___20))) + uu___19))) + uu___18)) else Obj.magic (Pulse_Typing_Env.fail @@ -684,13 +767,13 @@ let (check_elim_exists : (Prims.strcat (Pulse_Syntax_Printer.univ_to_string u) "")))) + uu___16))) + uu___12))) + uu___10))) + uu___9))) uu___7))) - uu___4))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) uu___1))) - uu___))) uu___) + uu___5))) uu___4))) + uu___2))) uu___1) let (intro_exists_witness_singleton : Pulse_Syntax_Base.st_term -> Prims.bool) = fun st -> @@ -725,6 +808,13 @@ let (check_intro_exists : fun res_ppname -> fun st -> fun slprop_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g + "check_intro_exists_non_erased" + st.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -736,13 +826,13 @@ let (check_intro_exists : (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (108)) (Prims.of_int (85)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g - "check_intro_exists_non_erased" - st.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> st.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -761,16 +851,30 @@ let (check_intro_exists : (Prims.of_int (85)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_IntroExists { Pulse_Syntax_Base.p5 = t; Pulse_Syntax_Base.witnesses = witness::[];_} -> + let uu___3 = + match slprop_typing with + | FStar_Pervasives_Native.Some + typing -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.Mkdtuple2 + (t, ())))) + | uu___4 -> + Obj.magic + (Obj.repr + (Pulse_Checker_Pure.check_slprop + g1 t)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -789,25 +893,18 @@ let (check_intro_exists : (Prims.of_int (62)) (Prims.of_int (133)) (Prims.of_int (54))))) - (match slprop_typing with - | FStar_Pervasives_Native.Some - typing -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.Mkdtuple2 - (t, ())))) - | uu___1 -> - Obj.magic - (Obj.repr - (Pulse_Checker_Pure.check_slprop - g1 t))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (t1, t_typing) -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Syntax_Pure.inspect_term + t1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -826,56 +923,24 @@ let (check_intro_exists : (Prims.of_int (2)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Syntax_Pure.inspect_term - t1)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun tv -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (118)) - (Prims.of_int (2)) - (Prims.of_int (121)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (121)) - (Prims.of_int (34)) - (Prims.of_int (133)) - (Prims.of_int (54))))) - (if + let uu___6 = + if Prims.op_Negation (Pulse_Syntax_Pure.uu___is_Tm_ExistsSL tv) - then + then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (120)) - (Prims.of_int (9)) - (Prims.of_int (121)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Exists.fst" - (Prims.of_int (119)) - (Prims.of_int (7)) - (Prims.of_int (121)) - (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + let uu___8 + = + Pulse_Syntax_Printer.term_to_string + t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -893,40 +958,86 @@ let (check_intro_exists : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t1)) + uu___8) (fun - uu___2 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> Prims.strcat "check_intro_exists_non_erased: slprop " (Prims.strcat - uu___2 - " is not an existential"))))) + uu___9 + " is not an existential"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (120)) + (Prims.of_int (9)) + (Prims.of_int (121)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (119)) + (Prims.of_int (7)) + (Prims.of_int (121)) + (Prims.of_int (33))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (st.Pulse_Syntax_Base.range1)) - uu___2)) - uu___2))) - else + uu___8)) + uu___8))) + else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - ())))) + uu___8 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (118)) + (Prims.of_int (2)) + (Prims.of_int (121)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Exists.fst" + (Prims.of_int (121)) + (Prims.of_int (34)) + (Prims.of_int (133)) + (Prims.of_int (54))))) + (Obj.magic + uu___6) + (fun + uu___7 -> (fun - uu___2 -> + uu___7 -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> + tv)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -945,20 +1056,31 @@ let (check_intro_exists : (Prims.of_int (34)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - tv)) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> - match uu___3 + uu___9 -> + match uu___9 with | Pulse_Syntax_Pure.Tm_ExistsSL (u, b, p) -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Metatheory_Base.tm_exists_inversion + g1 u + b.Pulse_Syntax_Base.binder_ty + p () + (Pulse_Typing_Env.fresh + g1))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -977,25 +1099,27 @@ let (check_intro_exists : (Prims.of_int (47)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing_Metatheory_Base.tm_exists_inversion - g1 u - b.Pulse_Syntax_Base.binder_ty - p () - (Pulse_Typing_Env.fresh - g1))) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> - match uu___4 + uu___11 + -> + match uu___11 with | (ty_typing, - uu___5) + uu___12) -> + let uu___13 + = + Pulse_Checker_Pure.check_term + g1 + witness + FStar_TypeChecker_Core.E_Ghost + b.Pulse_Syntax_Base.binder_ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1015,22 +1139,33 @@ let (check_intro_exists : (Prims.of_int (133)) (Prims.of_int (54))))) (Obj.magic - (Pulse_Checker_Pure.check_term - g1 - witness - FStar_TypeChecker_Core.E_Ghost - b.Pulse_Syntax_Base.binder_ty)) + uu___13) (fun - uu___6 -> + uu___14 + -> (fun - uu___6 -> - match uu___6 + uu___14 + -> + match uu___14 with | Prims.Mkdtuple2 (witness1, witness_typing) -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Typing.T_IntroExists + (g1, u, + b, p, + witness1, + (), (), + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1049,18 +1184,24 @@ let (check_intro_exists : (Prims.of_int (76)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing.T_IntroExists - (g1, u, - b, p, - witness1, - (), (), - ()))) + (Obj.magic + uu___15) (fun - uu___7 -> + uu___16 + -> (fun d -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Prims.Mkdtuple2 + ((Pulse_Typing.comp_intro_exists + u b p + witness1), + d))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1079,24 +1220,28 @@ let (check_intro_exists : (Prims.of_int (76)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Prims.Mkdtuple2 - ((Pulse_Typing.comp_intro_exists - u b p - witness1), - d))) + (Obj.magic + uu___16) (fun - uu___7 -> + uu___17 + -> (fun - uu___7 -> - match uu___7 + uu___17 + -> + match uu___17 with | Prims.Mkdtuple2 (c, d1) -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + uu___17)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1115,96 +1260,106 @@ let (check_intro_exists : (Prims.of_int (2)) (Prims.of_int (133)) (Prims.of_int (54))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___7)) + (Obj.magic + uu___18) (fun - uu___8 -> + uu___19 + -> (fun - uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19 + -> + let uu___20 + = + let uu___21 + = + Pulse_Checker_Base.match_comp_res_with_post_hint + g1 + (Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_IntroExists + { + Pulse_Syntax_Base.p5 + = + (Pulse_Syntax_Pure.tm_exists_sl + u b p); + Pulse_Syntax_Base.witnesses + = + [witness1] + })) c d1 + post_hint in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (131)) - (Prims.of_int (18)) + (Prims.of_int (50)) (Prims.of_int (131)) - (Prims.of_int (105))))) + (Prims.of_int (93))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (131)) - (Prims.of_int (2)) - (Prims.of_int (133)) - (Prims.of_int (54))))) + (Prims.of_int (18)) + (Prims.of_int (131)) + (Prims.of_int (105))))) (Obj.magic + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + Obj.magic + (Pulse_Checker_Prover.try_frame_pre + false g + pre () + uu___22 + res_ppname)) + uu___22) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (131)) - (Prims.of_int (50)) + (Prims.of_int (18)) (Prims.of_int (131)) - (Prims.of_int (93))))) + (Prims.of_int (105))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Exists.fst" (Prims.of_int (131)) - (Prims.of_int (18)) - (Prims.of_int (131)) - (Prims.of_int (105))))) + (Prims.of_int (2)) + (Prims.of_int (133)) + (Prims.of_int (54))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint - g1 - (Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_IntroExists - { - Pulse_Syntax_Base.p5 - = - (Pulse_Syntax_Pure.tm_exists_sl - u b p); - Pulse_Syntax_Base.witnesses - = - [witness1] - })) c d1 - post_hint)) - (fun - uu___9 -> + uu___20) (fun - uu___9 -> - Obj.magic - (Pulse_Checker_Prover.try_frame_pre - false g - pre () - uu___9 - res_ppname)) - uu___9))) - (fun - uu___9 -> + uu___21 + -> (fun - uu___9 -> + uu___21 + -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g pre - uu___9 + uu___21 post_hint (Pulse_RuntimeUtils.range_of_term t1))) + uu___21))) + uu___19))) + uu___17))) + uu___16))) + uu___14))) + uu___11))) uu___9))) - uu___8))) - uu___7))) uu___7))) - uu___6))) - uu___4))) - uu___3))) - uu___2))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___6))) + uu___4))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_If.ml b/src/ocaml/plugin/generated/Pulse_Checker_If.ml index 62cb5b5d0..6d861114c 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_If.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_If.ml @@ -21,6 +21,12 @@ let (check : fun e1 -> fun e2 -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_if" + e1.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -32,12 +38,12 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.If.fst" (Prims.of_int (45)) (Prims.of_int (64)) (Prims.of_int (104)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_if" - e1.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Pulse_Checker_Pure.check_tot_term g1 b + Pulse_Typing.tm_bool in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -56,13 +62,16 @@ let (check : (Prims.of_int (64)) (Prims.of_int (104)) (Prims.of_int (43))))) - (Obj.magic - (Pulse_Checker_Pure.check_tot_term g1 b - Pulse_Typing.tm_bool)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Prims.Mkdtuple2 (b1, b_typing) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + post_hint.Pulse_Typing.post)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -81,11 +90,15 @@ let (check : (Prims.of_int (30)) (Prims.of_int (104)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - post_hint.Pulse_Typing.post)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun post -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -104,12 +117,24 @@ let (check : (Prims.of_int (22)) (Prims.of_int (104)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.fresh - g1)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun hyp -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___6 -> + fun eq_v + -> + Pulse_Typing_Env.push_binding + g1 hyp + (Pulse_Syntax_Base.mk_ppname_no_range + "_if_hyp") + (Pulse_Typing.mk_eq2 + Pulse_Syntax_Pure.u0 + Pulse_Typing.tm_bool + b1 eq_v))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -128,51 +153,33 @@ let (check : (Prims.of_int (4)) (Prims.of_int (104)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - fun eq_v - -> - Pulse_Typing_Env.push_binding - g1 hyp - (Pulse_Syntax_Base.mk_ppname_no_range - "_if_hyp") - (Pulse_Typing.mk_eq2 - Pulse_Syntax_Pure.u0 - Pulse_Typing.tm_bool - b1 eq_v))) + (Obj.magic + uu___5) (fun - uu___1 -> + uu___6 -> (fun g_with_eq -> + let uu___6 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (59)) - (Prims.of_int (47)) - (Prims.of_int (91)) - (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (92)) - (Prims.of_int (4)) - (Prims.of_int (104)) - (Prims.of_int (43))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___7 -> fun eq_v -> fun br -> fun is_then -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + g_with_eq + eq_v)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -190,16 +197,20 @@ let (check : (Prims.of_int (37)) (Prims.of_int (91)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - g_with_eq - eq_v)) + (Obj.magic + uu___8) (fun - uu___2 -> + uu___9 -> (fun g_with_eq1 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -218,36 +229,21 @@ let (check : (Prims.of_int (6)) (Prims.of_int (91)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - ())) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun pre_typing1 -> + let uu___10 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (69)) - (Prims.of_int (8)) - (Prims.of_int (76)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (78)) - (Prims.of_int (6)) - (Prims.of_int (91)) - (Prims.of_int (23))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___11 + -> { Pulse_Syntax_Base.term1 = @@ -280,21 +276,17 @@ let (check : Pulse_Syntax_Base.effect_tag = (br.Pulse_Syntax_Base.effect_tag) - })) - (fun - uu___2 -> - (fun br1 - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.If.fst" - (Prims.of_int (80)) - (Prims.of_int (24)) - (Prims.of_int (84)) - (Prims.of_int (37))))) + (Prims.of_int (69)) + (Prims.of_int (8)) + (Prims.of_int (76)) + (Prims.of_int (35))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -304,7 +296,24 @@ let (check : (Prims.of_int (91)) (Prims.of_int (23))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + (fun br1 + -> + let uu___11 + = + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_if_br")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -321,15 +330,22 @@ let (check : (Prims.of_int (49)) (Prims.of_int (84)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_if_br")) + (Obj.magic + uu___12) (fun - uu___2 -> + uu___13 + -> (fun ppname -> + let uu___13 + = + check1 + g_with_eq1 + pre () + (FStar_Pervasives_Native.Some + post_hint) + ppname + br1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -349,15 +365,10 @@ let (check : (Prims.of_int (84)) (Prims.of_int (37))))) (Obj.magic - (check1 - g_with_eq1 - pre () - (FStar_Pervasives_Native.Some - post_hint) - ppname - br1)) + uu___13) (fun - uu___2 -> + uu___14 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k @@ -365,18 +376,53 @@ let (check : pre post_hint r ppname)) - uu___2))) - uu___2))) + uu___14))) + uu___13) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (80)) + (Prims.of_int (24)) + (Prims.of_int (84)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (78)) + (Prims.of_int (6)) + (Prims.of_int (91)) + (Prims.of_int (23))))) + (Obj.magic + uu___11) (fun - uu___2 -> + uu___12 + -> (fun - uu___2 -> - match uu___2 + uu___12 + -> + match uu___12 with | FStar_Pervasives.Mkdtuple3 (br2, c, d) -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + if + is_then + then + "then" + else + "else")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -395,17 +441,11 @@ let (check : (Prims.of_int (4)) (Prims.of_int (91)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - if - is_then - then - "then" - else - "else")) + (Obj.magic + uu___13) (fun - uu___3 -> + uu___14 + -> (fun br_name -> @@ -431,20 +471,46 @@ let (check : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> FStar_Pervasives.Mkdtuple3 (br2, c, d))))) - uu___3))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) + uu___14))) + uu___12))) + uu___11))) + uu___10))) + uu___9))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (59)) + (Prims.of_int (47)) + (Prims.of_int (91)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (92)) + (Prims.of_int (4)) + (Prims.of_int (104)) + (Prims.of_int (43))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun check_branch -> + let uu___7 + = + check_branch + Pulse_Typing.tm_true + e1 true in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -464,20 +530,23 @@ let (check : (Prims.of_int (104)) (Prims.of_int (43))))) (Obj.magic - (check_branch - Pulse_Typing.tm_true - e1 true)) + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple3 (e11, c1, e1_typing) -> + let uu___9 + = + check_branch + Pulse_Typing.tm_false + e2 false in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -497,20 +566,32 @@ let (check : (Prims.of_int (104)) (Prims.of_int (43))))) (Obj.magic - (check_branch - Pulse_Typing.tm_false - e2 false)) + uu___9) (fun - uu___2 -> + uu___10 + -> (fun - uu___2 -> - match uu___2 + uu___10 + -> + match uu___10 with | FStar_Pervasives.Mkdtuple3 (e21, c2, e2_typing) -> + let uu___11 + = + Pulse_JoinComp.join_comps + (g_with_eq + Pulse_Typing.tm_true) + e11 c1 + e1_typing + (g_with_eq + Pulse_Typing.tm_false) + e21 c2 + e2_typing + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -530,21 +611,14 @@ let (check : (Prims.of_int (104)) (Prims.of_int (43))))) (Obj.magic - (Pulse_JoinComp.join_comps - (g_with_eq - Pulse_Typing.tm_true) - e11 c1 - e1_typing - (g_with_eq - Pulse_Typing.tm_false) - e21 c2 - e2_typing - post_hint)) + uu___11) (fun - uu___3 -> + uu___12 + -> (fun - uu___3 -> - match uu___3 + uu___12 + -> + match uu___12 with | FStar_Pervasives.Mkdtuple3 @@ -552,6 +626,11 @@ let (check : e1_typing1, e2_typing1) -> + let uu___13 + = + Pulse_Checker_Base.comp_typing_from_post_hint + g c () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -571,35 +650,20 @@ let (check : (Prims.of_int (104)) (Prims.of_int (43))))) (Obj.magic - (Pulse_Checker_Base.comp_typing_from_post_hint - g c () - post_hint)) + uu___13) (fun - uu___4 -> + uu___14 + -> (fun c_typing -> + let uu___14 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (102)) - (Prims.of_int (4)) - (Prims.of_int (102)) - (Prims.of_int (78))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.If.fst" - (Prims.of_int (104)) - (Prims.of_int (2)) - (Prims.of_int (104)) - (Prims.of_int (43))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst c @@ -622,9 +686,30 @@ let (check : (), e1_typing1, e2_typing1, - ()))))) + ()))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (102)) + (Prims.of_int (4)) + (Prims.of_int (102)) + (Prims.of_int (78))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.If.fst" + (Prims.of_int (104)) + (Prims.of_int (2)) + (Prims.of_int (104)) + (Prims.of_int (43))))) + (Obj.magic + uu___14) (fun - uu___4 -> + uu___15 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -633,12 +718,13 @@ let (check : post_hint) d res_ppname)) - uu___4))) - uu___4))) - uu___3))) - uu___2))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___15))) + uu___14))) + uu___12))) + uu___10))) + uu___8))) + uu___7))) + uu___6))) + uu___5))) + uu___4))) uu___2))) + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_IntroPure.ml b/src/ocaml/plugin/generated/Pulse_Checker_IntroPure.ml index 73412bb54..30f34c92d 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_IntroPure.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_IntroPure.ml @@ -7,6 +7,8 @@ let (check_prop : = fun g -> fun p -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> p)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -17,10 +19,12 @@ let (check_prop : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (30)) (Prims.of_int (15)) (Prims.of_int (41)) - (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> p)) - (fun uu___ -> + (Prims.of_int (30))))) (Obj.magic uu___) + (fun uu___1 -> (fun p0 -> + let uu___1 = + Pulse_Checker_Pure.check_slprop g + (Pulse_Syntax_Pure.tm_pure p) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -33,24 +37,106 @@ let (check_prop : (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (30)) (Prims.of_int (15)) (Prims.of_int (41)) (Prims.of_int (30))))) - (Obj.magic - (Pulse_Checker_Pure.check_slprop g - (Pulse_Syntax_Pure.tm_pure p))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Prims.Mkdtuple2 (p1, p_typing) -> (match Pulse_Syntax_Pure.inspect_term p1 with | Pulse_Syntax_Pure.Tm_Pure pp -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___3 -> Prims.Mkdtuple2 (pp, ())))) - | uu___1 -> + | uu___3 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + let uu___5 = + Pulse_Syntax_Printer.term_to_string + p1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.IntroPure.fst" + (Prims.of_int (41)) + (Prims.of_int (9)) + (Prims.of_int (41)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.IntroPure.fst" + (Prims.of_int (38)) + (Prims.of_int (6)) + (Prims.of_int (41)) + (Prims.of_int (30))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + Pulse_Syntax_Printer.term_to_string + (Pulse_Syntax_Pure.tm_pure + p0) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.IntroPure.fst" + (Prims.of_int (40)) + (Prims.of_int (9)) + (Prims.of_int (40)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x -> + Prims.strcat + (Prims.strcat + "Impossible: check_intro_pure: checking a pure slprop " + (Prims.strcat + uu___9 + " returned a non-pure slprop ")) + (Prims.strcat + x + ",please file a bug-report"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.IntroPure.fst" + (Prims.of_int (38)) + (Prims.of_int (6)) + (Prims.of_int (41)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.IntroPure.fst" + (Prims.of_int (38)) + (Prims.of_int (6)) + (Prims.of_int (41)) + (Prims.of_int (30))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + uu___8 uu___6)))) + uu___6) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -67,101 +153,14 @@ let (check_prop : (Prims.of_int (4)) (Prims.of_int (41)) (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.IntroPure.fst" - (Prims.of_int (41)) - (Prims.of_int (9)) - (Prims.of_int (41)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.IntroPure.fst" - (Prims.of_int (38)) - (Prims.of_int (6)) - (Prims.of_int (41)) - (Prims.of_int (30))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - p1)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.IntroPure.fst" - (Prims.of_int (38)) - (Prims.of_int (6)) - (Prims.of_int (41)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.IntroPure.fst" - (Prims.of_int (38)) - (Prims.of_int (6)) - (Prims.of_int (41)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.IntroPure.fst" - (Prims.of_int (40)) - (Prims.of_int (9)) - (Prims.of_int (40)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - ( - Pulse_Syntax_Printer.term_to_string - (Pulse_Syntax_Pure.tm_pure - p0))) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "Impossible: check_intro_pure: checking a pure slprop " - (Prims.strcat - uu___3 - " returned a non-pure slprop ")) - (Prims.strcat - x - ",please file a bug-report"))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> Obj.magic (Pulse_Typing_Env.fail g FStar_Pervasives_Native.None - uu___2)) uu___2))))) - uu___))) uu___) + uu___5)) uu___5))))) + uu___2))) uu___1) let (check_prop_validity : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -185,6 +184,12 @@ let (check : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "check_intro_pure" + t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -196,12 +201,13 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (56)) (Prims.of_int (71)) (Prims.of_int (62)) (Prims.of_int (131))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "check_intro_pure" - t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -216,13 +222,13 @@ let (check : "Pulse.Checker.IntroPure.fst" (Prims.of_int (56)) (Prims.of_int (71)) (Prims.of_int (62)) (Prims.of_int (131))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_IntroPure { Pulse_Syntax_Base.p3 = p;_} -> + let uu___3 = check_prop g1 p in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -241,12 +247,15 @@ let (check : (Prims.of_int (36)) (Prims.of_int (62)) (Prims.of_int (131))))) - (Obj.magic (check_prop g1 p)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (p1, p_typing) -> + let uu___5 = + check_prop_validity g1 + p1 () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -265,11 +274,17 @@ let (check : (Prims.of_int (46)) (Prims.of_int (62)) (Prims.of_int (131))))) - (Obj.magic - (check_prop_validity - g1 p1 ())) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun pv -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Typing.T_IntroPure + (g1, p1, + (), ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind ( @@ -291,91 +306,93 @@ let (check : (Prims.of_int (62)) (Prims.of_int (131))))) ( - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing.T_IntroPure - (g1, p1, - (), ()))) + Obj.magic + uu___6) ( fun - uu___2 -> + uu___7 -> (fun st_typing -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___7 + = + let uu___8 + = + Pulse_Checker_Base.match_comp_res_with_post_hint + g1 + (Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_IntroPure + { + Pulse_Syntax_Base.p3 + = p1 + })) + (Pulse_Typing.comp_intro_pure + p1) + st_typing + post_hint in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (62)) - (Prims.of_int (18)) + (Prims.of_int (50)) (Prims.of_int (62)) - (Prims.of_int (113))))) + (Prims.of_int (101))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (62)) - (Prims.of_int (2)) + (Prims.of_int (18)) (Prims.of_int (62)) - (Prims.of_int (131))))) + (Prims.of_int (113))))) (Obj.magic + uu___8) + (fun + uu___9 -> + (fun + uu___9 -> + Obj.magic + (Pulse_Checker_Prover.try_frame_pre + false g + pre () + uu___9 + res_ppname)) + uu___9) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (62)) - (Prims.of_int (50)) + (Prims.of_int (18)) (Prims.of_int (62)) - (Prims.of_int (101))))) + (Prims.of_int (113))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.IntroPure.fst" (Prims.of_int (62)) - (Prims.of_int (18)) + (Prims.of_int (2)) (Prims.of_int (62)) - (Prims.of_int (113))))) + (Prims.of_int (131))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint - g1 - (Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_IntroPure - { - Pulse_Syntax_Base.p3 - = p1 - })) - (Pulse_Typing.comp_intro_pure - p1) - st_typing - post_hint)) - (fun - uu___2 -> - (fun - uu___2 -> - Obj.magic - (Pulse_Checker_Prover.try_frame_pre - false g - pre () - uu___2 - res_ppname)) - uu___2))) + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g pre - uu___2 + uu___8 post_hint t.Pulse_Syntax_Base.range1)) - uu___2))) - uu___2))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___8))) + uu___7))) + uu___6))) + uu___4))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Match.ml b/src/ocaml/plugin/generated/Pulse_Checker_Match.ml index 4fdbbd98e..9888ecbe7 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Match.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Match.ml @@ -84,7 +84,140 @@ let rec (r_bindings_to_string : | b::bs1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = + FStar_Tactics_Unseal.unseal + b.FStar_Reflection_V2_Data.ppname3 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (206)) (Prims.of_int (5)) + (Prims.of_int (206)) (Prims.of_int (22))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (206)) (Prims.of_int (4)) + (Prims.of_int (206)) (Prims.of_int (90))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Builtins.term_to_string + b.FStar_Reflection_V2_Data.sort3 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (206)) + (Prims.of_int (60)) + (Prims.of_int (206)) + (Prims.of_int (83))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + Prims.strcat uu___8 " ")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (206)) + (Prims.of_int (60)) + (Prims.of_int (206)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Prims.strcat ":" uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (206)) + (Prims.of_int (54)) + (Prims.of_int (206)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Prims.strcat + (Prims.string_of_int + b.FStar_Reflection_V2_Data.uniq1) + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (206)) + (Prims.of_int (31)) + (Prims.of_int (206)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> Prims.strcat "-" uu___5)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (206)) + (Prims.of_int (25)) + (Prims.of_int (206)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.strcat uu___2 uu___4)))) uu___2) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" @@ -95,147 +228,10 @@ let rec (r_bindings_to_string : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (206)) (Prims.of_int (4)) (Prims.of_int (206)) (Prims.of_int (116))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) (Prims.of_int (5)) - (Prims.of_int (206)) (Prims.of_int (22))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) (Prims.of_int (4)) - (Prims.of_int (206)) (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - b.FStar_Reflection_V2_Data.ppname3)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) - (Prims.of_int (25)) - (Prims.of_int (206)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) - (Prims.of_int (31)) - (Prims.of_int (206)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) - (Prims.of_int (54)) - (Prims.of_int (206)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) - (Prims.of_int (60)) - (Prims.of_int (206)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (206)) - (Prims.of_int (60)) - (Prims.of_int (206)) - (Prims.of_int (83))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - b.FStar_Reflection_V2_Data.sort3)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 - -> - Prims.strcat - uu___1 - " ")))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - ":" uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - (Prims.string_of_int - b.FStar_Reflection_V2_Data.uniq1) - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "-" uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat uu___ uu___1)))) - uu___))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = r_bindings_to_string bs1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -253,11 +249,11 @@ let rec (r_bindings_to_string : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (r_bindings_to_string bs1)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat uu___ uu___1)))) - uu___)))) uu___ + (fun uu___4 -> Prims.strcat uu___1 uu___3)))) + uu___1)))) uu___ let rec (bindings_to_string : Pulse_Typing_Env.binding Prims.list -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -271,82 +267,76 @@ let rec (bindings_to_string : | b::bs1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (212)) (Prims.of_int (4)) - (Prims.of_int (212)) (Prims.of_int (85))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (212)) (Prims.of_int (4)) - (Prims.of_int (212)) (Prims.of_int (109))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = + let uu___2 = + let uu___3 = + Pulse_Syntax_Printer.term_to_string + (FStar_Pervasives_Native.snd b) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (212)) (Prims.of_int (29)) - (Prims.of_int (212)) (Prims.of_int (84))))) + (Prims.of_int (212)) (Prims.of_int (35)) + (Prims.of_int (212)) (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (212)) - (Prims.of_int (35)) - (Prims.of_int (212)) - (Prims.of_int (84))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (212)) - (Prims.of_int (35)) - (Prims.of_int (212)) - (Prims.of_int (78))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - (FStar_Pervasives_Native.snd b))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat uu___ " ")))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.strcat ":" uu___)))) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat - (Prims.string_of_int - (FStar_Pervasives_Native.fst b)) uu___)))) - (fun uu___ -> - (fun uu___ -> + (fun uu___5 -> Prims.strcat uu___4 " ")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (212)) (Prims.of_int (35)) + (Prims.of_int (212)) (Prims.of_int (84))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> Prims.strcat ":" uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (212)) (Prims.of_int (29)) + (Prims.of_int (212)) (Prims.of_int (84))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Prims.strcat + (Prims.string_of_int + (FStar_Pervasives_Native.fst b)) uu___2)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (212)) (Prims.of_int (4)) + (Prims.of_int (212)) (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" + (Prims.of_int (212)) (Prims.of_int (4)) + (Prims.of_int (212)) (Prims.of_int (109))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = bindings_to_string bs1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -364,11 +354,11 @@ let rec (bindings_to_string : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (bindings_to_string bs1)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat uu___ uu___1)))) - uu___)))) uu___ + (fun uu___4 -> Prims.strcat uu___1 uu___3)))) + uu___1)))) uu___ let (check_branch : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -400,6 +390,20 @@ let (check_branch : fun p0 -> fun e -> fun bs -> + let uu___ = + match readback_pat p0 with + | FStar_Pervasives_Native.Some p -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> p))) + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g + (FStar_Pervasives_Native.Some + (e.Pulse_Syntax_Base.range1)) + "readback_pat failed")) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -413,21 +417,15 @@ let (check_branch : "Pulse.Checker.Match.fst" (Prims.of_int (236)) (Prims.of_int (27)) (Prims.of_int (274)) (Prims.of_int (58))))) - (match readback_pat p0 with - | FStar_Pervasives_Native.Some p -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> p))) - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g - (FStar_Pervasives_Native.Some - (e.Pulse_Syntax_Base.range1)) - "readback_pat failed"))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun p -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + FStar_List_Tot_Base.map + Pulse_Typing.readback_binding bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -446,12 +444,15 @@ let (check_branch : (Prims.of_int (54)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_List_Tot_Base.map - Pulse_Typing.readback_binding bs)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun pulse_bs -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing.push_bindings + g pulse_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -470,12 +471,15 @@ let (check_branch : (Prims.of_int (38)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.push_bindings - g pulse_bs)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun g' -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing_Env.fresh + g')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -494,12 +498,16 @@ let (check_branch : (Prims.of_int (27)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh - g')) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun hyp_var -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___5 -> + FStar_Reflection_Typing.elaborate_pat + p0 bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -518,15 +526,33 @@ let (check_branch : (Prims.of_int (2)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___ -> - FStar_Reflection_Typing.elaborate_pat - p0 bs)) + (Obj.magic + uu___4) (fun - uu___ -> + uu___5 -> (fun elab_p -> + let uu___5 + = + if + Prims.op_Negation + (FStar_Pervasives_Native.uu___is_Some + elab_p) + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + (e.Pulse_Syntax_Base.range1)) + "Failed to elab pattern into term")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -545,10 +571,20 @@ let (check_branch : (Prims.of_int (2)) (Prims.of_int (274)) (Prims.of_int (58))))) - (if - Prims.op_Negation - (FStar_Pervasives_Native.uu___is_Some - elab_p) + (Obj.magic + uu___5) + (fun + uu___6 -> + (fun + uu___6 -> + let uu___7 + = + if + FStar_Reflection_V2_Data.uu___is_Tv_Unknown + (FStar_Reflection_V2_Builtins.inspect_ln + (FStar_Pervasives_Native.fst + (FStar_Pervasives_Native.__proj__Some__item__v + elab_p))) then Obj.magic (Obj.repr @@ -556,18 +592,14 @@ let (check_branch : g (FStar_Pervasives_Native.Some (e.Pulse_Syntax_Base.range1)) - "Failed to elab pattern into term")) + "should not happen: pattern elaborated to Tv_Unknown")) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> - ())))) - (fun - uu___ -> - (fun - uu___ -> + uu___9 -> + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -586,31 +618,22 @@ let (check_branch : (Prims.of_int (80)) (Prims.of_int (274)) (Prims.of_int (58))))) - (if - FStar_Reflection_V2_Data.uu___is_Tv_Unknown - (FStar_Reflection_V2_Builtins.inspect_ln - (FStar_Pervasives_Native.fst - (FStar_Pervasives_Native.__proj__Some__item__v - elab_p))) - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - (e.Pulse_Syntax_Base.range1)) - "should not happen: pattern elaborated to Tv_Unknown")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___7) (fun - uu___2 -> - ())))) + uu___8 -> (fun - uu___1 -> + uu___8 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___10 + -> + FStar_Pervasives_Native.fst + (FStar_Pervasives_Native.__proj__Some__item__v + elab_p))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -629,17 +652,25 @@ let (check_branch : (Prims.of_int (41)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_Pervasives_Native.fst - (FStar_Pervasives_Native.__proj__Some__item__v - elab_p))) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun elab_p_tm -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing.mk_sq_eq2 + sc_u + sc_ty sc + elab_p_tm)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -658,17 +689,32 @@ let (check_branch : (Prims.of_int (51)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing.mk_sq_eq2 - sc_u - sc_ty sc - elab_p_tm)) + (Obj.magic + uu___10) (fun - uu___2 -> + uu___11 + -> (fun eq_typ -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Typing_Env.push_binding + g' + hyp_var + { + Pulse_Syntax_Base.name + = + (FStar_Sealed.seal + "branch equality"); + Pulse_Syntax_Base.range + = + FStar_Range.range_0 + } eq_typ)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -687,25 +733,23 @@ let (check_branch : (Prims.of_int (109)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___11) (fun - uu___2 -> - Pulse_Typing_Env.push_binding - g' - hyp_var - { - Pulse_Syntax_Base.name - = - (FStar_Sealed.seal - "branch equality"); - Pulse_Syntax_Base.range + uu___12 + -> + (fun g'1 + -> + let uu___12 = - FStar_Range.range_0 - } eq_typ)) + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - (fun g'1 + uu___13 -> + open_st_term_bs + e + pulse_bs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -724,37 +768,20 @@ let (check_branch : (Prims.of_int (39)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - open_st_term_bs - e - pulse_bs)) + (Obj.magic + uu___12) (fun - uu___2 -> + uu___13 + -> (fun e1 -> + let uu___13 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (254)) - (Prims.of_int (6)) - (Prims.of_int (263)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (265)) - (Prims.of_int (4)) - (Prims.of_int (274)) - (Prims.of_int (58))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___14 + -> { Pulse_Syntax_Base.term1 = @@ -788,75 +815,82 @@ let (check_branch : Pulse_Syntax_Base.effect_tag = (e1.Pulse_Syntax_Base.effect_tag) - })) - (fun - uu___2 -> - (fun e2 - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (266)) - (Prims.of_int (19)) - (Prims.of_int (266)) - (Prims.of_int (61))))) + (Prims.of_int (254)) + (Prims.of_int (6)) + (Prims.of_int (263)) + (Prims.of_int (32))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (266)) - (Prims.of_int (64)) + (Prims.of_int (265)) + (Prims.of_int (4)) (Prims.of_int (274)) (Prims.of_int (58))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - ())) - (fun - uu___2 -> + (Obj.magic + uu___13) (fun - pre_typing1 + uu___14 -> + (fun e2 + -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (267)) + (Prims.of_int (266)) (Prims.of_int (19)) - (Prims.of_int (267)) - (Prims.of_int (96))))) + (Prims.of_int (266)) + (Prims.of_int (61))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (267)) - (Prims.of_int (99)) + (Prims.of_int (266)) + (Prims.of_int (64)) (Prims.of_int (274)) (Prims.of_int (58))))) + (Obj.magic + uu___14) + (fun + uu___15 + -> + (fun + pre_typing1 + -> + let uu___15 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - ())) - (fun - uu___2 -> - (fun - pre_typing2 - -> + uu___16 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (269)) - (Prims.of_int (23)) - (Prims.of_int (272)) - (Prims.of_int (35))))) + (Prims.of_int (267)) + (Prims.of_int (19)) + (Prims.of_int (267)) + (Prims.of_int (96))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -866,7 +900,25 @@ let (check_branch : (Prims.of_int (274)) (Prims.of_int (58))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + (fun + pre_typing2 + -> + let uu___16 + = + let uu___17 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_br")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -883,15 +935,20 @@ let (check_branch : (Prims.of_int (44)) (Prims.of_int (272)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_br")) + (Obj.magic + uu___17) (fun - uu___2 -> + uu___18 + -> (fun ppname -> + let uu___18 + = + check g'1 + pre () + (FStar_Pervasives_Native.Some + post_hint) + ppname e2 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -911,28 +968,46 @@ let (check_branch : (Prims.of_int (272)) (Prims.of_int (35))))) (Obj.magic - (check - g'1 pre - () - (FStar_Pervasives_Native.Some - post_hint) - ppname e2)) + uu___18) (fun - uu___2 -> + uu___19 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k g'1 pre post_hint r ppname)) - uu___2))) - uu___2))) + uu___19))) + uu___18) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (269)) + (Prims.of_int (23)) + (Prims.of_int (272)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (267)) + (Prims.of_int (99)) + (Prims.of_int (274)) + (Prims.of_int (58))))) + (Obj.magic + uu___16) (fun - uu___2 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - match uu___2 + uu___18 + -> + match uu___17 with | FStar_Pervasives.Mkdtuple3 @@ -955,18 +1030,19 @@ let (check_branch : (), hyp_var, e_d))))))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___1))) - uu___))) - uu___))) - uu___))) - uu___))) uu___))) uu___) + uu___16))) + uu___15))) + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10))) + uu___8))) + uu___6))) + uu___5))) + uu___4))) + uu___3))) uu___2))) + uu___1) type ('g, 'pre, 'postuhint, 'scuu, 'scuty, 'sc) check_branches_aux_t = (Pulse_Syntax_Base.branch, Pulse_Syntax_Base.comp_st, (unit, unit, unit, unit, unit, unit, unit) Pulse_Typing.br_typing) @@ -998,6 +1074,18 @@ let (check_branches_aux : fun sc -> fun brs0 -> fun bnds -> + let uu___ = + if FStar_List_Tot_Base.isEmpty brs0 + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g + FStar_Pervasives_Native.None "empty match")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> ()))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1009,95 +1097,82 @@ let (check_branches_aux : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (303)) (Prims.of_int (51)) (Prims.of_int (313)) (Prims.of_int (3))))) - (if FStar_List_Tot_Base.isEmpty brs0 - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g - FStar_Pervasives_Native.None "empty match")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (306)) - (Prims.of_int (5)) - (Prims.of_int (309)) - (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (310)) - (Prims.of_int (4)) - (Prims.of_int (313)) - (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - fun b -> - fun pbs -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (306)) - (Prims.of_int (19)) - (Prims.of_int (306)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (306)) - (Prims.of_int (5)) - (Prims.of_int (309)) - (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> b)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with - | (uu___3, e) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + fun b -> + fun pbs -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> b)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (306)) + (Prims.of_int (19)) + (Prims.of_int (306)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (306)) + (Prims.of_int (5)) + (Prims.of_int (309)) + (Prims.of_int (23))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with + | (uu___6, e) -> + let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + pbs)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (307)) (Prims.of_int (20)) (Prims.of_int (307)) (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (306)) (Prims.of_int (23)) (Prims.of_int (309)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> pbs)) - (fun uu___4 -> - (fun uu___4 - -> - match uu___4 - with - | - (p, bs) - -> + (Obj.magic + uu___7) + (fun uu___8 -> + (fun uu___8 + -> + match uu___8 + with + | + (p, bs) -> + let uu___9 + = + check_branch + g pre () + post_hint + check + sc_u + sc_ty sc + p e bs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1117,19 +1192,15 @@ let (check_branches_aux : (Prims.of_int (309)) (Prims.of_int (23))))) (Obj.magic - (check_branch - g pre () - post_hint - check - sc_u - sc_ty sc - p e bs)) + uu___9) (fun - uu___5 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - match uu___5 + uu___11 + -> + match uu___10 with | FStar_Pervasives.Mkdtuple4 @@ -1138,10 +1209,31 @@ let (check_branches_aux : FStar_Pervasives.Mkdtuple3 ((p1, e1), c, d))))) - uu___4))) - uu___2))) - (fun uu___1 -> + uu___8))) + uu___5))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (306)) + (Prims.of_int (5)) + (Prims.of_int (309)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (310)) + (Prims.of_int (4)) + (Prims.of_int (313)) + (Prims.of_int (3))))) + (Obj.magic uu___2) + (fun uu___3 -> (fun tr1 -> + let uu___3 = + Pulse_Common.zipWith tr1 brs0 bnds in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1160,13 +1252,11 @@ let (check_branches_aux : (Prims.of_int (6)) (Prims.of_int (311)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Common.zipWith tr1 - brs0 bnds)) + (Obj.magic uu___3) (fun r -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> r)))) - uu___1))) uu___) + (fun uu___4 -> r)))) + uu___3))) uu___1) let (comp_observability : Pulse_Syntax_Base.comp_st -> Pulse_Syntax_Base.observability) = fun c -> @@ -1220,6 +1310,10 @@ let (weaken_branch_observability : fun sc -> fun c -> fun checked_br -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> checked_br)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1231,10 +1325,9 @@ let (weaken_branch_observability : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (336)) Prims.int_one (Prims.of_int (346)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> checked_br)) - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (br, c0, typing) -> (match c0 with | Pulse_Syntax_Base.C_STAtomic (i, obs', st) -> @@ -1247,7 +1340,7 @@ let (weaken_branch_observability : "Cannot weaken observability" else FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> match typing with | Pulse_Typing.TBR (g1, sc_u1, sc_ty1, sc1, c1, p, @@ -1382,7 +1475,11 @@ let (join_branches : | checked_br::rest -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> checked_br)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1399,21 +1496,20 @@ let (join_branches : (Prims.of_int (23)) (Prims.of_int (387)) (Prims.of_int (26))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> checked_br)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (br, c, d) -> (match c with | Pulse_Syntax_Base.C_ST - uu___1 -> + uu___2 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___3 -> Prims.Mkdtuple2 (c, ((Prims.Mkdtuple2 @@ -1421,8 +1517,8 @@ let (join_branches : :: (FStar_List_Tot_Base.map (fun - uu___3 -> - match uu___3 + uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 @@ -1432,14 +1528,14 @@ let (join_branches : (br1, d1)) rest)))))) | Pulse_Syntax_Base.C_STGhost - (uu___1, - uu___2) + (uu___2, + uu___3) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___4 -> Prims.Mkdtuple2 (c, ((Prims.Mkdtuple2 @@ -1447,8 +1543,8 @@ let (join_branches : :: (FStar_List_Tot_Base.map (fun - uu___4 -> - match uu___4 + uu___5 -> + match uu___5 with | FStar_Pervasives.Mkdtuple3 @@ -1462,7 +1558,17 @@ let (join_branches : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___3 -> + max_obs + (FStar_List_Tot_Base.map + FStar_Pervasives.__proj__Mkdtuple3__item___2 + rest) obs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1479,18 +1585,23 @@ let (join_branches : (Prims.of_int (68)) (Prims.of_int (387)) (Prims.of_int (26))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - max_obs - (FStar_List_Tot_Base.map - FStar_Pervasives.__proj__Mkdtuple3__item___2 - rest) obs)) + (Obj.magic + uu___2) (fun - uu___1 -> + uu___3 -> (fun max_obs1 -> + let uu___3 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___4 -> + Pulse_Syntax_Base.C_STAtomic + (i, + max_obs1, + stc))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1509,17 +1620,23 @@ let (join_branches : (Prims.of_int (41)) (Prims.of_int (387)) (Prims.of_int (26))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - Pulse_Syntax_Base.C_STAtomic - (i, - max_obs1, - stc))) + (Obj.magic + uu___3) (fun - uu___1 -> + uu___4 -> (fun c1 -> + let uu___4 + = + FStar_Tactics_Util.map + (weaken_branch_observability + max_obs1 + g pre + post_hint + sc_u + sc_ty sc + c1) + checked_brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1539,27 +1656,19 @@ let (join_branches : (Prims.of_int (387)) (Prims.of_int (26))))) (Obj.magic - (FStar_Tactics_Util.map - (weaken_branch_observability - max_obs1 - g pre - post_hint - sc_u - sc_ty sc - c1) - checked_brs)) + uu___4) (fun checked_brs1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___5 -> Prims.Mkdtuple2 (c1, checked_brs1))))) - uu___1))) - uu___1))))) - uu___)))) uu___7 uu___6 + uu___4))) + uu___3))))) + uu___1)))) uu___7 uu___6 uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let rec (least_tag : Pulse_Typing_Env.env -> @@ -1611,6 +1720,9 @@ let (weaken_branch_tag_to : fun sc -> fun ct -> fun br -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> br)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1622,21 +1734,27 @@ let (weaken_branch_tag_to : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (406)) Prims.int_one (Prims.of_int (425)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> br)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (pe, c, d) -> if (Pulse_Syntax_Base.ctag_of_comp_st c) = ct then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> br))) + (fun uu___2 -> br))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + (FStar_Pervasives_Native.snd + pe).Pulse_Syntax_Base.range1)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1653,29 +1771,27 @@ let (weaken_branch_tag_to : (Prims.of_int (4)) (Prims.of_int (425)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - (FStar_Pervasives_Native.snd pe).Pulse_Syntax_Base.range1)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun r -> match (ct, c) with | (Pulse_Syntax_Base.STT_Ghost, Pulse_Syntax_Base.C_STAtomic - (uu___2, uu___3, uu___4)) -> + (uu___4, uu___5, uu___6)) -> Obj.magic (Obj.repr (FStar_Tactics_V2_Derived.fail "Unexpected least effect")) | (Pulse_Syntax_Base.STT_Ghost, Pulse_Syntax_Base.C_ST - uu___2) -> + uu___4) -> Obj.magic (Obj.repr (FStar_Tactics_V2_Derived.fail "Unexpected least effect")) | (Pulse_Syntax_Base.STT_Atomic, Pulse_Syntax_Base.C_ST - uu___2) -> + uu___4) -> Obj.magic (Obj.repr (Pulse_Typing_Env.fail @@ -1684,7 +1800,7 @@ let (weaken_branch_tag_to : r) "Cannot lift a computation from ST to atomic")) | (Pulse_Syntax_Base.STT, - uu___2) -> + uu___4) -> Obj.magic (Obj.repr (Pulse_Typing_Env.fail @@ -1694,10 +1810,15 @@ let (weaken_branch_tag_to : "Cannot lift a branch to ST")) | (Pulse_Syntax_Base.STT_Atomic, Pulse_Syntax_Base.C_STGhost - (uu___2, uu___3)) -> + (uu___4, uu___5)) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + d)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1714,11 +1835,10 @@ let (weaken_branch_tag_to : (Prims.of_int (35)) (Prims.of_int (425)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> d)) - (fun uu___4 -> - (fun uu___4 -> - match uu___4 + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + match uu___7 with | Pulse_Typing.TBR (g1, @@ -1729,26 +1849,9 @@ let (weaken_branch_tag_to : pf1, pf2, pf3, h, d1) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (422)) - (Prims.of_int (14)) - (Prims.of_int (422)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (424)) - (Prims.of_int (6)) - (Prims.of_int (424)) - (Prims.of_int (20))))) - (Obj.magic - (Pulse_Typing_Combinators.lift_ghost_atomic + let uu___8 + = + Pulse_Typing_Combinators.lift_ghost_atomic (Pulse_Typing_Env.push_binding (Pulse_Typing.push_bindings g1 @@ -1775,12 +1878,32 @@ let (weaken_branch_tag_to : (Pulse_Elaborate_Pure.elab_pat p) bs))) FStar_Range.range_0))) - e c1 d1)) + e c1 d1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (422)) + (Prims.of_int (14)) + (Prims.of_int (422)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (424)) + (Prims.of_int (6)) + (Prims.of_int (424)) + (Prims.of_int (20))))) + (Obj.magic + uu___8) (fun d2 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___9 -> FStar_Pervasives.Mkdtuple3 (pe, (Pulse_Typing_Combinators.st_ghost_as_atomic @@ -1796,8 +1919,8 @@ let (weaken_branch_tag_to : (), (), (), h, d2))))))) - uu___4)))) - uu___2)))) uu___) + uu___7)))) + uu___4)))) uu___1) let (weaken_branch_tags : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1820,6 +1943,11 @@ let (weaken_branch_tags : fun sc_ty -> fun sc -> fun checked_brs -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + least_tag g pre post_hint sc_u sc_ty sc checked_brs)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1831,11 +1959,13 @@ let (weaken_branch_tags : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (432)) (Prims.of_int (35)) (Prims.of_int (434)) (Prims.of_int (15))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - least_tag g pre post_hint sc_u sc_ty sc checked_brs)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ct -> + let uu___1 = + FStar_Tactics_Util.map + (weaken_branch_tag_to g pre post_hint sc_u sc_ty + sc ct) checked_brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1853,14 +1983,11 @@ let (weaken_branch_tags : (Prims.of_int (434)) (Prims.of_int (2)) (Prims.of_int (434)) (Prims.of_int (15))))) - (Obj.magic - (FStar_Tactics_Util.map - (weaken_branch_tag_to g pre post_hint sc_u - sc_ty sc ct) checked_brs)) + (Obj.magic uu___1) (fun brs -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Prims.Mkdtuple2 (ct, brs))))) - uu___) + (fun uu___2 -> Prims.Mkdtuple2 (ct, brs))))) + uu___1) let (maybe_weaken_branch_tags : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1895,7 +2022,14 @@ let (maybe_weaken_branch_tags : uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + least_tag g pre post_hint + sc_u sc_ty sc + checked_brs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1912,12 +2046,15 @@ let (maybe_weaken_branch_tags : (Prims.of_int (37)) (Prims.of_int (444)) (Prims.of_int (17))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - least_tag g pre post_hint - sc_u sc_ty sc checked_brs)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ct -> + let uu___2 = + FStar_Tactics_Util.map + (weaken_branch_tag_to g + pre post_hint sc_u + sc_ty sc ct) + checked_brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1936,19 +2073,13 @@ let (maybe_weaken_branch_tags : (Prims.of_int (4)) (Prims.of_int (444)) (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_Util.map - (weaken_branch_tag_to - g pre - post_hint sc_u - sc_ty sc ct) - checked_brs)) + (Obj.magic uu___2) (fun brs -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___3 -> Prims.Mkdtuple2 (ct, brs))))) - uu___1))) + uu___2))) | uu___ -> Obj.magic (Obj.repr @@ -1962,7 +2093,14 @@ let (maybe_weaken_branch_tags : []))) | hd::tl -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + ctag_of_br g pre + post_hint sc_u + sc_ty sc hd)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1979,13 +2117,21 @@ let (maybe_weaken_branch_tags : (Prims.of_int (31)) (Prims.of_int (451)) (Prims.of_int (27))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ctag_of_br g pre - post_hint sc_u - sc_ty sc hd)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ct -> + let uu___2 = + FStar_Tactics_Util.map + (fun uu___3 -> + (fun x -> + Obj.magic + ( + FStar_Tactics_Effect.lift_div_tac + (fun + uu___3 -> + x))) + uu___3) + checked_brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2005,27 +2151,17 @@ let (maybe_weaken_branch_tags : (Prims.of_int (451)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Util.map - (fun - uu___1 -> - (fun x -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - x))) - uu___1) - checked_brs)) + uu___2) (fun checked_brs1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 + (fun uu___3 -> Prims.Mkdtuple2 (ct, checked_brs1))))) - uu___1))))) uu___6 + uu___2))))) uu___6 uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let (check_branches : Pulse_Typing_Env.env -> @@ -2057,6 +2193,9 @@ let (check_branches : fun sc -> fun brs0 -> fun bnds -> + let uu___ = + check_branches_aux g pre () post_hint check sc_u + sc_ty sc brs0 bnds in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2068,11 +2207,12 @@ let (check_branches : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (467)) (Prims.of_int (98)) (Prims.of_int (481)) (Prims.of_int (18))))) - (Obj.magic - (check_branches_aux g pre () post_hint check sc_u - sc_ty sc brs0 bnds)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun checked_brs -> + let uu___1 = + maybe_weaken_branch_tags g pre post_hint sc_u + sc_ty sc checked_brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2091,14 +2231,16 @@ let (check_branches : (Prims.of_int (98)) (Prims.of_int (481)) (Prims.of_int (18))))) - (Obj.magic - (maybe_weaken_branch_tags g pre - post_hint sc_u sc_ty sc checked_brs)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Prims.Mkdtuple2 (ct, checked_brs1) -> + let uu___3 = + join_branches g pre post_hint + sc_u sc_ty sc ct + checked_brs1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2117,14 +2259,11 @@ let (check_branches : (Prims.of_int (69)) (Prims.of_int (481)) (Prims.of_int (18))))) - (Obj.magic - (join_branches g pre - post_hint sc_u sc_ty - sc ct checked_brs1)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___5 -> + match uu___4 with | Prims.Mkdtuple2 (c0, checked_brs2) @@ -2156,7 +2295,7 @@ let (check_branches : (aux rest)) in aux checked_brs2)))))) - uu___))) uu___) + uu___2))) uu___1) let (check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -2177,6 +2316,12 @@ let (check : fun sc -> fun brs -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context_no_range g + "check_match")) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2188,12 +2333,14 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Match.fst" (Prims.of_int (495)) (Prims.of_int (67)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context_no_range g - "check_match")) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_RuntimeUtils.range_of_term sc)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2212,11 +2359,13 @@ let (check : (Prims.of_int (55)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_RuntimeUtils.range_of_term sc)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun sc_range -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> brs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2235,10 +2384,15 @@ let (check : (Prims.of_int (23)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> brs)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun orig_brs -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_List_Tot_Base.length + brs)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2257,12 +2411,12 @@ let (check : (Prims.of_int (27)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_List_Tot_Base.length - brs)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun nbr -> + let uu___4 = + Pulse_Checker_Pure.compute_tot_term_type_and_u + g1 sc in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2282,12 +2436,12 @@ let (check : (Prims.of_int (544)) (Prims.of_int (55))))) (Obj.magic - (Pulse_Checker_Pure.compute_tot_term_type_and_u - g1 sc)) - (fun uu___ -> - (fun uu___ - -> - match uu___ + uu___4) + (fun uu___5 + -> + (fun + uu___5 -> + match uu___5 with | FStar_Pervasives.Mkdtuple5 @@ -2297,47 +2451,27 @@ let (check : sc_ty_typing, sc_typing) -> + let uu___6 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (502)) - (Prims.of_int (18)) - (Prims.of_int (502)) - (Prims.of_int (48))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (507)) - (Prims.of_int (4)) - (Prims.of_int (544)) - (Prims.of_int (55))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___7 -> FStar_List_Tot_Base.map Pulse_Elaborate_Pure.elab_pat (FStar_List_Tot_Base.map FStar_Pervasives_Native.fst - brs))) - (fun - uu___1 -> - (fun - elab_pats - -> + brs))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (514)) - (Prims.of_int (4)) - (Prims.of_int (517)) - (Prims.of_int (75))))) + (Prims.of_int (502)) + (Prims.of_int (18)) + (Prims.of_int (502)) + (Prims.of_int (48))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2347,7 +2481,22 @@ let (check : (Prims.of_int (544)) (Prims.of_int (55))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___6) + (fun + uu___7 -> + (fun + elab_pats + -> + let uu___7 + = + let uu___8 + = + FStar_Tactics_V2_Builtins.check_match_complete + (Pulse_Typing.elab_env + g1) sc1 + sc_ty + elab_pats in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2365,16 +2514,12 @@ let (check : (Prims.of_int (517)) (Prims.of_int (75))))) (Obj.magic - (FStar_Tactics_V2_Builtins.check_match_complete - (Pulse_Typing.elab_env - g1) sc1 - sc_ty - elab_pats)) + uu___8) (fun - uu___1 -> + uu___9 -> (fun - uu___1 -> - match uu___1 + uu___9 -> + match uu___9 with | FStar_Pervasives_Native.None @@ -2394,7 +2539,8 @@ let (check : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___10 + -> FStar_Pervasives.Mkdtuple3 (elab_pats', bnds, @@ -2409,12 +2555,32 @@ let (check : sc_ty, elab_pats', bnds, ()))))))))) - uu___1))) + uu___9) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (514)) + (Prims.of_int (4)) + (Prims.of_int (517)) + (Prims.of_int (75))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (507)) + (Prims.of_int (4)) + (Prims.of_int (544)) + (Prims.of_int (55))))) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple3 @@ -2422,6 +2588,13 @@ let (check : bnds', complete_d) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> uu___8)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2440,14 +2613,24 @@ let (check : (Prims.of_int (4)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___9) (fun - uu___2 -> - uu___1)) + uu___10 + -> (fun - uu___2 -> + uu___10 + -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___12 + -> + Pulse_Common.map_opt + readback_pat + elab_pats')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2466,36 +2649,17 @@ let (check : (Prims.of_int (2)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Common.map_opt - readback_pat - elab_pats')) + (Obj.magic + uu___11) (fun - uu___3 -> + uu___12 + -> (fun new_pats -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (520)) - (Prims.of_int (2)) - (Prims.of_int (521)) - (Prims.of_int (60))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Match.fst" - (Prims.of_int (521)) - (Prims.of_int (61)) - (Prims.of_int (544)) - (Prims.of_int (55))))) - (if + let uu___12 + = + if FStar_Pervasives_Native.uu___is_None new_pats then @@ -2511,68 +2675,73 @@ let (check : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - ())))) - (fun - uu___3 -> - (fun - uu___3 -> + uu___14 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (522)) - (Prims.of_int (12)) - (Prims.of_int (522)) - (Prims.of_int (66))))) + (Prims.of_int (520)) + (Prims.of_int (2)) + (Prims.of_int (521)) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (535)) - (Prims.of_int (50)) + (Prims.of_int (521)) + (Prims.of_int (61)) (Prims.of_int (544)) (Prims.of_int (55))))) (Obj.magic - (Pulse_Common.zipWith + uu___12) (fun - uu___5 -> + uu___13 + -> + (fun + uu___13 + -> + let uu___14 + = + Pulse_Common.zipWith + (fun + uu___16 + -> fun - uu___4 -> + uu___15 + -> (fun p -> fun - uu___4 -> + uu___15 + -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___16 + -> + match uu___15 with | - (uu___6, + (uu___17, e) -> (p, e)))) - uu___5 - uu___4) + uu___16 + uu___15) (FStar_Pervasives_Native.__proj__Some__item__v new_pats) - brs)) - (fun - uu___4 -> - (fun brs1 - -> + brs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Match.fst" - (Prims.of_int (538)) - (Prims.of_int (4)) - (Prims.of_int (538)) - (Prims.of_int (92))))) + (Prims.of_int (522)) + (Prims.of_int (12)) + (Prims.of_int (522)) + (Prims.of_int (66))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2582,7 +2751,15 @@ let (check : (Prims.of_int (544)) (Prims.of_int (55))))) (Obj.magic - (check_branches + uu___14) + (fun + uu___15 + -> + (fun brs1 + -> + let uu___15 + = + check_branches g1 pre () post_hint check1 @@ -2591,17 +2768,44 @@ let (check : brs1 (Pulse_Common.zip elab_pats' - bnds'))) + bnds') in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (538)) + (Prims.of_int (4)) + (Prims.of_int (538)) + (Prims.of_int (92))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Match.fst" + (Prims.of_int (535)) + (Prims.of_int (50)) + (Prims.of_int (544)) + (Prims.of_int (55))))) + (Obj.magic + uu___15) (fun - uu___4 -> + uu___16 + -> (fun - uu___4 -> - match uu___4 + uu___16 + -> + match uu___16 with | FStar_Pervasives.Mkdtuple3 (brs2, c, brs_d) -> + let uu___17 + = + Pulse_Checker_Base.comp_typing_from_post_hint + g c () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2621,14 +2825,29 @@ let (check : (Prims.of_int (544)) (Prims.of_int (55))))) (Obj.magic - (Pulse_Checker_Base.comp_typing_from_post_hint - g c () - post_hint)) + uu___17) (fun - uu___5 -> + uu___18 + -> (fun c_typing -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + Pulse_Typing.T_Match + (g1, + sc_u, + sc_ty, + sc1, (), + (), c, + (), brs2, + brs_d, + complete_d))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2647,20 +2866,11 @@ let (check : (Prims.of_int (2)) (Prims.of_int (544)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing.T_Match - (g1, - sc_u, - sc_ty, - sc1, (), - (), c, - (), brs2, - brs_d, - complete_d))) + (Obj.magic + uu___18) (fun - uu___5 -> + uu___19 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -2682,15 +2892,15 @@ let (check : })), c, d)) res_ppname)) + uu___19))) + uu___18))) + uu___16))) + uu___15))) + uu___13))) + uu___12))) + uu___10))) + uu___8))) + uu___7))) uu___5))) - uu___5))) - uu___4))) - uu___4))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) - uu___1))) - uu___))) - uu___))) uu___))) - uu___))) uu___) \ No newline at end of file + uu___4))) uu___3))) + uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Par.ml b/src/ocaml/plugin/generated/Pulse_Checker_Par.ml index 0985d1959..ab0c9336a 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Par.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Par.ml @@ -17,6 +17,12 @@ let (check : fun res_ppname -> fun t -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context "check_par" + t.Pulse_Syntax_Base.range1 g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -28,12 +34,13 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Par.fst" (Prims.of_int (41)) (Prims.of_int (47)) (Prims.of_int (66)) (Prims.of_int (123))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "check_par" - t.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -49,11 +56,10 @@ let (check : (Prims.of_int (41)) (Prims.of_int (47)) (Prims.of_int (66)) (Prims.of_int (123))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_Par { Pulse_Syntax_Base.pre1 = preL; Pulse_Syntax_Base.body11 = eL; @@ -62,6 +68,9 @@ let (check : Pulse_Syntax_Base.body21 = eR; Pulse_Syntax_Base.post2 = postR;_} -> + let uu___3 = + Pulse_Checker_Pure.check_tot_term g1 + preL Pulse_Syntax_Pure.tm_slprop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -80,15 +89,16 @@ let (check : (Prims.of_int (59)) (Prims.of_int (66)) (Prims.of_int (123))))) - (Obj.magic - (Pulse_Checker_Pure.check_tot_term - g1 preL - Pulse_Syntax_Pure.tm_slprop)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (preL1, preL_typing) -> + let uu___5 = + Pulse_Checker_Pure.check_tot_term + g1 preR + Pulse_Syntax_Pure.tm_slprop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -107,18 +117,22 @@ let (check : (Prims.of_int (66)) (Prims.of_int (66)) (Prims.of_int (123))))) - (Obj.magic - (Pulse_Checker_Pure.check_tot_term - g1 preR - Pulse_Syntax_Pure.tm_slprop)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Prims.Mkdtuple2 (preR1, preR_typing) -> + let uu___7 + = + Pulse_Checker_Base.intro_post_hint + g1 + Pulse_Syntax_Base.EffectAnnotSTT + FStar_Pervasives_Native.None + postL in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -138,36 +152,24 @@ let (check : (Prims.of_int (66)) (Prims.of_int (123))))) (Obj.magic - (Pulse_Checker_Base.intro_post_hint - g1 - Pulse_Syntax_Base.EffectAnnotSTT - FStar_Pervasives_Native.None - postL)) + uu___7) (fun - uu___3 -> + uu___8 -> (fun postL_hint -> + let uu___8 + = + let uu___9 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (48)) - (Prims.of_int (31)) - (Prims.of_int (51)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (47)) - (Prims.of_int (65)) - (Prims.of_int (66)) - (Prims.of_int (123))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_par_l")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -184,15 +186,20 @@ let (check : (Prims.of_int (47)) (Prims.of_int (51)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_par_l")) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> (fun ppname -> + let uu___10 + = + check1 g1 + preL1 () + (FStar_Pervasives_Native.Some + postL_hint) + ppname eL in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -212,33 +219,59 @@ let (check : (Prims.of_int (51)) (Prims.of_int (35))))) (Obj.magic - (check1 - g1 preL1 - () - (FStar_Pervasives_Native.Some - postL_hint) - ppname eL)) + uu___10) (fun - uu___3 -> + uu___11 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k g1 preL1 postL_hint r ppname)) - uu___3))) - uu___3))) + uu___11))) + uu___10) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (48)) + (Prims.of_int (31)) + (Prims.of_int (51)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (47)) + (Prims.of_int (65)) + (Prims.of_int (66)) + (Prims.of_int (123))))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> - match uu___3 + uu___9 -> + match uu___9 with | FStar_Pervasives.Mkdtuple3 (eL1, cL, eL_typing) -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Metatheory_Base.st_typing_correctness + g1 eL1 cL + eL_typing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -257,17 +290,21 @@ let (check : (Prims.of_int (55)) (Prims.of_int (66)) (Prims.of_int (123))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing_Metatheory_Base.st_typing_correctness - g1 eL1 cL - eL_typing)) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun cL_typing -> + let uu___11 + = + Pulse_Checker_Base.intro_post_hint + g1 + Pulse_Syntax_Base.EffectAnnotSTT + FStar_Pervasives_Native.None + postR in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -287,36 +324,25 @@ let (check : (Prims.of_int (66)) (Prims.of_int (123))))) (Obj.magic - (Pulse_Checker_Base.intro_post_hint - g1 - Pulse_Syntax_Base.EffectAnnotSTT - FStar_Pervasives_Native.None - postR)) + uu___11) (fun - uu___4 -> + uu___12 + -> (fun postR_hint -> + let uu___12 + = + let uu___13 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (56)) - (Prims.of_int (31)) - (Prims.of_int (59)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (55)) - (Prims.of_int (65)) - (Prims.of_int (66)) - (Prims.of_int (123))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_par_r")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -333,15 +359,20 @@ let (check : (Prims.of_int (47)) (Prims.of_int (59)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_par_r")) + (Obj.magic + uu___13) (fun - uu___4 -> + uu___14 + -> (fun ppname -> + let uu___14 + = + check1 g1 + preR1 () + (FStar_Pervasives_Native.Some + postR_hint) + ppname eR in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -361,33 +392,61 @@ let (check : (Prims.of_int (59)) (Prims.of_int (35))))) (Obj.magic - (check1 - g1 preR1 - () - (FStar_Pervasives_Native.Some - postR_hint) - ppname eR)) + uu___14) (fun - uu___4 -> + uu___15 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k g1 preR1 postR_hint r ppname)) - uu___4))) - uu___4))) + uu___15))) + uu___14) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (56)) + (Prims.of_int (31)) + (Prims.of_int (59)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (55)) + (Prims.of_int (65)) + (Prims.of_int (66)) + (Prims.of_int (123))))) + (Obj.magic + uu___12) (fun - uu___4 -> + uu___13 + -> (fun - uu___4 -> - match uu___4 + uu___13 + -> + match uu___13 with | FStar_Pervasives.Mkdtuple3 (eR1, cR, eR_typing) -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Typing_Metatheory_Base.st_typing_correctness + g1 eR1 cR + eR_typing)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -406,17 +465,23 @@ let (check : (Prims.of_int (55)) (Prims.of_int (66)) (Prims.of_int (123))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing_Metatheory_Base.st_typing_correctness - g1 eR1 cR - eR_typing)) + (Obj.magic + uu___14) (fun - uu___5 -> + uu___15 + -> (fun cR_typing -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -435,35 +500,19 @@ let (check : (Prims.of_int (34)) (Prims.of_int (66)) (Prims.of_int (123))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing_Env.fresh - g1)) + (Obj.magic + uu___15) (fun - uu___5 -> + uu___16 + -> (fun x -> + let uu___16 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (65)) - (Prims.of_int (10)) - (Prims.of_int (65)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (66)) - (Prims.of_int (2)) - (Prims.of_int (66)) - (Prims.of_int (123))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___17 + -> Pulse_Typing.T_Par (g1, eL1, cL, eR1, @@ -471,20 +520,17 @@ let (check : cL_typing, cR_typing, eL_typing, - eR_typing))) - (fun - uu___5 -> - (fun d -> + eR_typing))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Par.fst" - (Prims.of_int (66)) - (Prims.of_int (18)) - (Prims.of_int (66)) - (Prims.of_int (105))))) + (Prims.of_int (65)) + (Prims.of_int (10)) + (Prims.of_int (65)) + (Prims.of_int (67))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -494,25 +540,16 @@ let (check : (Prims.of_int (66)) (Prims.of_int (123))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (66)) - (Prims.of_int (50)) - (Prims.of_int (66)) - (Prims.of_int (93))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Par.fst" - (Prims.of_int (66)) - (Prims.of_int (18)) - (Prims.of_int (66)) - (Prims.of_int (105))))) - (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint + uu___16) + (fun + uu___17 + -> + (fun d -> + let uu___17 + = + let uu___18 + = + Pulse_Checker_Base.match_comp_res_with_post_hint g1 (Pulse_Typing.wrst cL @@ -538,36 +575,79 @@ let (check : (Pulse_Typing.comp_par cL cR x) d - post_hint)) + post_hint in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (66)) + (Prims.of_int (50)) + (Prims.of_int (66)) + (Prims.of_int (93))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (66)) + (Prims.of_int (18)) + (Prims.of_int (66)) + (Prims.of_int (105))))) + (Obj.magic + uu___18) (fun - uu___5 -> + uu___19 + -> (fun - uu___5 -> + uu___19 + -> Obj.magic (Pulse_Checker_Prover.try_frame_pre false g pre () - uu___5 + uu___19 res_ppname)) - uu___5))) + uu___19) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (66)) + (Prims.of_int (18)) + (Prims.of_int (66)) + (Prims.of_int (105))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Par.fst" + (Prims.of_int (66)) + (Prims.of_int (2)) + (Prims.of_int (66)) + (Prims.of_int (123))))) + (Obj.magic + uu___17) (fun - uu___5 -> + uu___18 + -> (fun - uu___5 -> + uu___18 + -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g pre - uu___5 + uu___18 post_hint t.Pulse_Syntax_Base.range1)) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___4))) - uu___4))) - uu___4))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___13))) + uu___12))) + uu___11))) + uu___9))) + uu___8))) + uu___6))) + uu___4))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover.ml index 16607e60e..68c915ab5 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover.ml @@ -20,7 +20,10 @@ let (check_equiv_emp' : | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env g) p Pulse_Syntax_Pure.tm_emp in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" @@ -31,17 +34,14 @@ let (check_equiv_emp' : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (50)) (Prims.of_int (4)) (Prims.of_int (53)) (Prims.of_int (21))))) - (Obj.magic - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env g) p - Pulse_Syntax_Pure.tm_emp)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (FStar_Pervasives_Native.Some tok, uu___2) + (fun uu___2 -> + match uu___1 with + | (FStar_Pervasives_Native.Some tok, uu___3) -> FStar_Pervasives_Native.Some () - | (FStar_Pervasives_Native.None, uu___2) -> + | (FStar_Pervasives_Native.None, uu___3) -> FStar_Pervasives_Native.None))))) uu___1 uu___ let (elim_exists_and_pure : @@ -57,6 +57,7 @@ let (elim_exists_and_pure : fun g -> fun ctxt -> fun ctxt_typing -> + let uu___ = Pulse_Checker_Prover_ElimExists.elim_exists g ctxt () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -68,11 +69,13 @@ let (elim_exists_and_pure : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (60)) (Prims.of_int (53)) (Prims.of_int (64)) (Prims.of_int (41))))) - (Obj.magic (Pulse_Checker_Prover_ElimExists.elim_exists g ctxt ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple4 (g1, ctxt1, d1, k1) -> + let uu___2 = + Pulse_Checker_Prover_ElimPure.elim_pure g1 ctxt1 () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -87,20 +90,18 @@ let (elim_exists_and_pure : "Pulse.Checker.Prover.fst" (Prims.of_int (62)) (Prims.of_int (69)) (Prims.of_int (64)) (Prims.of_int (41))))) - (Obj.magic - (Pulse_Checker_Prover_ElimPure.elim_pure g1 ctxt1 - ())) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | FStar_Pervasives.Mkdtuple4 (g2, ctxt2, d2, k2) -> FStar_Pervasives.Mkdtuple4 (g2, ctxt2, (), (Pulse_Checker_Base.k_elab_trans g g1 g2 ctxt ctxt1 ctxt2 k1 k2)))))) - uu___) + uu___1) let (unsolved_equiv_pst : Pulse_Checker_Prover_Base.preamble -> unit Pulse_Checker_Prover_Base.prover_state -> @@ -190,6 +191,9 @@ let rec (prove_pures : (Obj.repr (match Pulse_Syntax_Pure.inspect_term p with | Pulse_Syntax_Pure.Tm_Pure p1 -> + let uu___ = + Pulse_Checker_Prover_IntroPure.intro_pure preamble + pst p1 unsolved' () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -203,13 +207,62 @@ let rec (prove_pures : "Pulse.Checker.Prover.fst" (Prims.of_int (108)) (Prims.of_int (6)) (Prims.of_int (119)) (Prims.of_int (14))))) - (Obj.magic - (Pulse_Checker_Prover_IntroPure.intro_pure - preamble pst p1 unsolved' ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun pst_opt -> match pst_opt with | FStar_Pervasives_Native.None -> + let uu___1 = + let uu___2 = + let uu___3 = + Pulse_PP.pp + Pulse_PP.printable_term p1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (112)) + (Prims.of_int (13)) + (Prims.of_int (112)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (111)) + (Prims.of_int (11)) + (Prims.of_int (112)) + (Prims.of_int (17))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text + "Cannot prove pure proposition") + uu___4)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (111)) + (Prims.of_int (11)) + (Prims.of_int (112)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (110)) + (Prims.of_int (30)) + (Prims.of_int (113)) + (Prims.of_int (10))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> [uu___3])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -228,64 +281,16 @@ let rec (prove_pures : (Prims.of_int (9)) (Prims.of_int (113)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (111)) - (Prims.of_int (11)) - (Prims.of_int (112)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (110)) - (Prims.of_int (30)) - (Prims.of_int (113)) - (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (112)) - (Prims.of_int (13)) - (Prims.of_int (112)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (111)) - (Prims.of_int (11)) - (Prims.of_int (112)) - (Prims.of_int (17))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p1)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "Cannot prove pure proposition") - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> [uu___])))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> Obj.magic (Pulse_Typing_Env.fail_doc pst.Pulse_Checker_Prover_Base.pg FStar_Pervasives_Native.None - uu___)) uu___)) + uu___2)) uu___2)) | FStar_Pervasives_Native.Some pst1 -> + let uu___1 = prove_pures preamble pst1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -304,12 +309,40 @@ let rec (prove_pures : (Prims.of_int (13)) (Prims.of_int (115)) (Prims.of_int (17))))) - (Obj.magic - (prove_pures preamble pst1)) + (Obj.magic uu___1) (fun pst2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> pst2)))) uu___) + (fun uu___2 -> pst2)))) uu___1) | uu___ -> + let uu___1 = + let uu___2 = + Pulse_Syntax_Printer.term_to_string + (FStar_List_Tot_Base.hd + pst.Pulse_Checker_Prover_Base.unsolved) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (123)) + (Prims.of_int (11)) + (Prims.of_int (123)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat + "Impossible! prover.prove_pures: " + (Prims.strcat uu___3 + " is not a pure, please file a bug-report"))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -323,41 +356,14 @@ let rec (prove_pures : "Pulse.Checker.Prover.fst" (Prims.of_int (121)) (Prims.of_int (6)) (Prims.of_int (123)) (Prims.of_int (50))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (123)) - (Prims.of_int (11)) - (Prims.of_int (123)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - (FStar_List_Tot_Base.hd - pst.Pulse_Checker_Prover_Base.unsolved))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "Impossible! prover.prove_pures: " - (Prims.strcat uu___1 - " is not a pure, please file a bug-report"))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> Obj.magic (Pulse_Typing_Env.fail pst.Pulse_Checker_Prover_Base.pg - FStar_Pervasives_Native.None uu___1)) - uu___1)))) uu___1 uu___ + FStar_Pervasives_Native.None uu___2)) + uu___2)))) uu___1 uu___ let (normalize_slprop : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop -> @@ -366,6 +372,13 @@ let (normalize_slprop : = fun g -> fun v -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + [FStar_Pervasives.unascribe; + FStar_Pervasives.primops; + FStar_Pervasives.iota])) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -377,13 +390,16 @@ let (normalize_slprop : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (131)) (Prims.of_int (54)) (Prims.of_int (138)) (Prims.of_int (22))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - [FStar_Pervasives.unascribe; - FStar_Pervasives.primops; - FStar_Pervasives.iota])) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun steps -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + FStar_List_Tot_Base.op_At steps + [FStar_Pervasives.delta_attr + ["Pulse.Lib.Core.pulse_unfold"]])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -396,13 +412,12 @@ let (normalize_slprop : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (134)) (Prims.of_int (69)) (Prims.of_int (138)) (Prims.of_int (22))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_List_Tot_Base.op_At steps - [FStar_Pervasives.delta_attr - ["Pulse.Lib.Core.pulse_unfold"]])) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun steps1 -> + let uu___2 = + FStar_Tactics_V2_Builtins.norm_well_typed_term + (Pulse_Typing.elab_env g) steps1 v in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -421,13 +436,11 @@ let (normalize_slprop : (Prims.of_int (2)) (Prims.of_int (138)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.norm_well_typed_term - (Pulse_Typing.elab_env g) steps1 v)) + (Obj.magic uu___2) (fun v' -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Prims.Mkdtuple2 (v', ()))))) - uu___))) uu___) + (fun uu___3 -> Prims.Mkdtuple2 (v', ()))))) + uu___2))) uu___1) let (normalize_slprop_welltyped : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop -> @@ -438,6 +451,7 @@ let (normalize_slprop_welltyped : fun g -> fun v -> fun v_typing -> + let uu___ = normalize_slprop g v in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -448,11 +462,11 @@ let (normalize_slprop_welltyped : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (145)) Prims.int_one (Prims.of_int (148)) - (Prims.of_int (35))))) (Obj.magic (normalize_slprop g v)) - (fun uu___ -> + (Prims.of_int (35))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | Prims.Mkdtuple2 (v', v_equiv_v') -> FStar_Pervasives.Mkdtuple3 (v', (), ()))) let (normalize_slprop_context : @@ -463,6 +477,10 @@ let (normalize_slprop_context : = fun preamble -> fun pst -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> pst.Pulse_Checker_Prover_Base.remaining_ctxt)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -473,11 +491,31 @@ let (normalize_slprop_context : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (156)) (Prims.of_int (34)) - (Prims.of_int (176)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> pst.Pulse_Checker_Prover_Base.remaining_ctxt)) - (fun uu___ -> + (Prims.of_int (176)) (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> (fun ctxt -> + let uu___1 = + FStar_Tactics_Util.map + (fun v -> + let uu___2 = + normalize_slprop pst.Pulse_Checker_Prover_Base.pg v in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (157)) (Prims.of_int (49)) + (Prims.of_int (157)) (Prims.of_int (76))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (157)) (Prims.of_int (49)) + (Prims.of_int (157)) (Prims.of_int (79))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.__proj__Mkdtuple2__item___1 uu___3))) + ctxt in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -490,36 +528,14 @@ let (normalize_slprop_context : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (157)) (Prims.of_int (83)) (Prims.of_int (176)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun v -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (157)) - (Prims.of_int (49)) - (Prims.of_int (157)) - (Prims.of_int (76))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (157)) - (Prims.of_int (49)) - (Prims.of_int (157)) - (Prims.of_int (79))))) - (Obj.magic - (normalize_slprop - pst.Pulse_Checker_Prover_Base.pg v)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.__proj__Mkdtuple2__item___1 uu___))) - ctxt)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ctxt' -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + pst.Pulse_Checker_Prover_Base.unsolved)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -538,11 +554,39 @@ let (normalize_slprop_context : (Prims.of_int (32)) (Prims.of_int (176)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - pst.Pulse_Checker_Prover_Base.unsolved)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun unsolved -> + let uu___3 = + FStar_Tactics_Util.map + (fun v -> + let uu___4 = + normalize_slprop + pst.Pulse_Checker_Prover_Base.pg + v in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (160)) + (Prims.of_int (57)) + (Prims.of_int (160)) + (Prims.of_int (84))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (160)) + (Prims.of_int (57)) + (Prims.of_int (160)) + (Prims.of_int (87))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.__proj__Mkdtuple2__item___1 + uu___5))) unsolved in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -561,91 +605,64 @@ let (normalize_slprop_context : (Prims.of_int (2)) (Prims.of_int (176)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun v -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (160)) - (Prims.of_int (57)) - (Prims.of_int (160)) - (Prims.of_int (84))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (160)) - (Prims.of_int (57)) - (Prims.of_int (160)) - (Prims.of_int (87))))) - (Obj.magic - (normalize_slprop - pst.Pulse_Checker_Prover_Base.pg - v)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.__proj__Mkdtuple2__item___1 - uu___))) - unsolved)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun unsolved' -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (162)) - (Prims.of_int (2)) - (Prims.of_int (167)) - (Prims.of_int (3))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (169)) - (Prims.of_int (4)) - (Prims.of_int (175)) - (Prims.of_int (30))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) - "ggg" - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind + let uu___4 = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) + "ggg" + then + Obj.magic + (Obj.repr + (let uu___5 = + let uu___6 = + let uu___7 = + Pulse_PP.pp + (Pulse_PP.printable_list + Pulse_PP.printable_term) + ctxt in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (163)) - (Prims.of_int (23)) - (Prims.of_int (167)) - (Prims.of_int (3))))) + (Prims.of_int (165)) + (Prims.of_int (4)) + (Prims.of_int (165)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (163)) - (Prims.of_int (2)) + (Prims.of_int (23)) (Prims.of_int (167)) (Prims.of_int (3))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___7) + (fun uu___8 -> + (fun uu___8 + -> + let uu___9 + = + let uu___10 + = + Pulse_PP.pp + (Pulse_PP.printable_list + Pulse_PP.printable_term) + ctxt' in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (163)) - (Prims.of_int (23)) - (Prims.of_int (167)) - (Prims.of_int (3))))) + (Prims.of_int (166)) + (Prims.of_int (4)) + (Prims.of_int (166)) + (Prims.of_int (12))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -655,15 +672,25 @@ let (normalize_slprop_context : (Prims.of_int (167)) (Prims.of_int (3))))) (Obj.magic + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + [uu___11])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (165)) - (Prims.of_int (4)) - (Prims.of_int (165)) - (Prims.of_int (11))))) + (Prims.of_int (163)) + (Prims.of_int (23)) + (Prims.of_int (167)) + (Prims.of_int (3))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -673,95 +700,96 @@ let (normalize_slprop_context : (Prims.of_int (167)) (Prims.of_int (3))))) (Obj.magic - (Pulse_PP.pp - (Pulse_PP.printable_list - Pulse_PP.printable_term) - ctxt)) + uu___9) (fun - uu___ -> + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + uu___11 + -> uu___8 + :: + uu___10)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (163)) (Prims.of_int (23)) (Prims.of_int (167)) (Prims.of_int (3))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (163)) (Prims.of_int (23)) (Prims.of_int (167)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (166)) - (Prims.of_int (4)) - (Prims.of_int (166)) - (Prims.of_int (12))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Obj.magic + uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 + -> + (Pulse_PP.text + "PROVER Normalized context") + :: uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (163)) (Prims.of_int (23)) (Prims.of_int (167)) (Prims.of_int (3))))) - (Obj.magic - (Pulse_PP.pp - (Pulse_PP.printable_list - Pulse_PP.printable_term) - ctxt')) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - [uu___1])))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - uu___ :: - uu___1)))) - uu___))) - (fun - uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - (Pulse_PP.text - "PROVER Normalized context") - :: uu___)))) - (fun uu___ -> - (fun uu___ - -> - Obj.magic - (Pulse_Typing_Env.info_doc + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (163)) + (Prims.of_int (2)) + (Prims.of_int (167)) + (Prims.of_int (3))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + Obj.magic + (Pulse_Typing_Env.info_doc pst.Pulse_Checker_Prover_Base.pg FStar_Pervasives_Native.None - uu___)) - uu___))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ())))) - (fun uu___ -> + uu___6)) + uu___6))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (162)) + (Prims.of_int (2)) + (Prims.of_int (167)) + (Prims.of_int (3))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (169)) + (Prims.of_int (4)) + (Prims.of_int (175)) + (Prims.of_int (30))))) + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___6 -> { Pulse_Checker_Prover_Base.pg = @@ -831,8 +859,8 @@ let (normalize_slprop_context : Pulse_Checker_Prover_Base.allow_ambiguous = (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })))) uu___))) - uu___))) uu___))) uu___) + })))) uu___4))) + uu___3))) uu___2))) uu___1) let rec (__intro_any_exists : Prims.nat -> Pulse_Checker_Prover_Base.preamble -> @@ -865,7 +893,14 @@ let rec (__intro_any_exists : (fun uu___1 -> pst)) | hd::unsolved' -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + hd)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -882,12 +917,8 @@ let rec (__intro_any_exists : (Prims.of_int (6)) (Prims.of_int (207)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - hd)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun hd1 -> match Pulse_Syntax_Pure.inspect_term hd1 @@ -898,7 +929,51 @@ let rec (__intro_any_exists : (Pulse_Checker_Prover_IntroExists.intro_exists preamble pst u b body unsolved' () prover) - | uu___1 -> + | uu___2 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + { + Pulse_Checker_Prover_Base.pg + = + (pst.Pulse_Checker_Prover_Base.pg); + Pulse_Checker_Prover_Base.remaining_ctxt + = + (pst.Pulse_Checker_Prover_Base.remaining_ctxt); + Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.uvs + = + (pst.Pulse_Checker_Prover_Base.uvs); + Pulse_Checker_Prover_Base.ss + = + (pst.Pulse_Checker_Prover_Base.ss); + Pulse_Checker_Prover_Base.nts + = + (pst.Pulse_Checker_Prover_Base.nts); + Pulse_Checker_Prover_Base.solved + = + (pst.Pulse_Checker_Prover_Base.solved); + Pulse_Checker_Prover_Base.unsolved + = + (FStar_List_Tot_Base.op_At + unsolved' + [hd1]); + Pulse_Checker_Prover_Base.k + = + (pst.Pulse_Checker_Prover_Base.k); + Pulse_Checker_Prover_Base.goals_inv + = (); + Pulse_Checker_Prover_Base.solved_inv + = (); + Pulse_Checker_Prover_Base.progress + = + (pst.Pulse_Checker_Prover_Base.progress); + Pulse_Checker_Prover_Base.allow_ambiguous + = + (pst.Pulse_Checker_Prover_Base.allow_ambiguous) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -917,57 +992,16 @@ let rec (__intro_any_exists : (Prims.of_int (8)) (Prims.of_int (207)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - { - Pulse_Checker_Prover_Base.pg - = - (pst.Pulse_Checker_Prover_Base.pg); - Pulse_Checker_Prover_Base.remaining_ctxt - = - (pst.Pulse_Checker_Prover_Base.remaining_ctxt); - Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.uvs - = - (pst.Pulse_Checker_Prover_Base.uvs); - Pulse_Checker_Prover_Base.ss - = - (pst.Pulse_Checker_Prover_Base.ss); - Pulse_Checker_Prover_Base.nts - = - (pst.Pulse_Checker_Prover_Base.nts); - Pulse_Checker_Prover_Base.solved - = - (pst.Pulse_Checker_Prover_Base.solved); - Pulse_Checker_Prover_Base.unsolved - = - (FStar_List_Tot_Base.op_At - unsolved' - [hd1]); - Pulse_Checker_Prover_Base.k - = - (pst.Pulse_Checker_Prover_Base.k); - Pulse_Checker_Prover_Base.goals_inv - = (); - Pulse_Checker_Prover_Base.solved_inv - = (); - Pulse_Checker_Prover_Base.progress - = - (pst.Pulse_Checker_Prover_Base.progress); - Pulse_Checker_Prover_Base.allow_ambiguous - = - (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun pst1 -> Obj.magic (__intro_any_exists (n - Prims.int_one) preamble pst1 - prover)) uu___2))) - uu___1))))) uu___3 uu___2 uu___1 + prover)) uu___4))) + uu___2))))) uu___3 uu___2 uu___1 uu___ let (intro_any_exists : Pulse_Checker_Prover_Base.preamble -> @@ -1059,7 +1093,8 @@ let rec (prover_iteration_loop : | (P (name, pass))::passes' -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = pass preamble pst0 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1072,11 +1107,48 @@ let rec (prover_iteration_loop : "Pulse.Checker.Prover.fst" (Prims.of_int (253)) (Prims.of_int (4)) (Prims.of_int (264)) (Prims.of_int (5))))) - (Obj.magic (pass preamble pst0)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun pst -> if pst.Pulse_Checker_Prover_Base.progress then + let uu___1 = + Pulse_Checker_Prover_Util.debug_prover + pst.Pulse_Checker_Prover_Base.pg + (fun uu___2 -> + let uu___3 = + Pulse_Show.show + (Pulse_Show.tac_showable_list + Pulse_Show.tac_showable_r_term) + pst.Pulse_Checker_Prover_Base.remaining_ctxt in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (256)) + (Prims.of_int (15)) + (Prims.of_int (256)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.strcat + (Prims.strcat + "prover: " + (Prims.strcat name + ": made progress, remaining_ctxt after pass = ")) + (Prims.strcat uu___4 + "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1095,89 +1167,52 @@ let rec (prover_iteration_loop : (Prims.of_int (6)) (Prims.of_int (257)) (Prims.of_int (17))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover - pst.Pulse_Checker_Prover_Base.pg - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (256)) - (Prims.of_int (15)) - (Prims.of_int (256)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Show.show - (Pulse_Show.tac_showable_list - Pulse_Show.tac_showable_r_term) - pst.Pulse_Checker_Prover_Base.remaining_ctxt)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - (Prims.strcat - "prover: " - (Prims.strcat - name - ": made progress, remaining_ctxt after pass = ")) - (Prims.strcat - uu___1 "\n")))))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Stepped pst))) + (fun uu___3 -> Stepped pst))) else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (259)) - (Prims.of_int (6)) - (Prims.of_int (260)) - (Prims.of_int (56))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (263)) - (Prims.of_int (6)) - (Prims.of_int (263)) - (Prims.of_int (40))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover - pst.Pulse_Checker_Prover_Base.pg - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "prover: " - (Prims.strcat - name - ": no progress\n")))) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> + (let uu___2 = + Pulse_Checker_Prover_Util.debug_prover + pst.Pulse_Checker_Prover_Base.pg + (fun uu___3 -> + (fun uu___3 -> Obj.magic - (prover_iteration_loop - preamble pst0 passes')) - uu___1))) uu___)))) uu___2 - uu___1 uu___ -let (prover_pass_collect_exists : - Pulse_Checker_Prover_Base.preamble -> - unit Pulse_Checker_Prover_Base.prover_state -> + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat "prover: " + (Prims.strcat name + ": no progress\n")))) + uu___3) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (259)) + (Prims.of_int (6)) + (Prims.of_int (260)) + (Prims.of_int (56))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (263)) + (Prims.of_int (6)) + (Prims.of_int (263)) + (Prims.of_int (40))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + Obj.magic + (prover_iteration_loop + preamble pst0 passes')) + uu___3)))) uu___1)))) uu___2 + uu___1 uu___ +let (prover_pass_collect_exists : + Pulse_Checker_Prover_Base.preamble -> + unit Pulse_Checker_Prover_Base.prover_state -> (unit Pulse_Checker_Prover_Base.prover_state, unit) FStar_Tactics_Effect.tac_repr) = @@ -1206,6 +1241,8 @@ let (prover_iteration : = fun preamble -> fun pst0 -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> pst0)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1216,10 +1253,38 @@ let (prover_iteration : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (280)) (Prims.of_int (19)) - (Prims.of_int (292)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> pst0)) - (fun uu___ -> + (Prims.of_int (292)) (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> (fun pst -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + { + Pulse_Checker_Prover_Base.pg = + (pst.Pulse_Checker_Prover_Base.pg); + Pulse_Checker_Prover_Base.remaining_ctxt = + (pst.Pulse_Checker_Prover_Base.remaining_ctxt); + Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.uvs = + (pst.Pulse_Checker_Prover_Base.uvs); + Pulse_Checker_Prover_Base.ss = + (pst.Pulse_Checker_Prover_Base.ss); + Pulse_Checker_Prover_Base.nts = + (pst.Pulse_Checker_Prover_Base.nts); + Pulse_Checker_Prover_Base.solved = + (pst.Pulse_Checker_Prover_Base.solved); + Pulse_Checker_Prover_Base.unsolved = + (pst.Pulse_Checker_Prover_Base.unsolved); + Pulse_Checker_Prover_Base.k = + (pst.Pulse_Checker_Prover_Base.k); + Pulse_Checker_Prover_Base.goals_inv = (); + Pulse_Checker_Prover_Base.solved_inv = (); + Pulse_Checker_Prover_Base.progress = false; + Pulse_Checker_Prover_Base.allow_ambiguous = + (pst.Pulse_Checker_Prover_Base.allow_ambiguous) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1232,35 +1297,30 @@ let (prover_iteration : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (283)) (Prims.of_int (2)) (Prims.of_int (292)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - { - Pulse_Checker_Prover_Base.pg = - (pst.Pulse_Checker_Prover_Base.pg); - Pulse_Checker_Prover_Base.remaining_ctxt = - (pst.Pulse_Checker_Prover_Base.remaining_ctxt); - Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.uvs = - (pst.Pulse_Checker_Prover_Base.uvs); - Pulse_Checker_Prover_Base.ss = - (pst.Pulse_Checker_Prover_Base.ss); - Pulse_Checker_Prover_Base.nts = - (pst.Pulse_Checker_Prover_Base.nts); - Pulse_Checker_Prover_Base.solved = - (pst.Pulse_Checker_Prover_Base.solved); - Pulse_Checker_Prover_Base.unsolved = - (pst.Pulse_Checker_Prover_Base.unsolved); - Pulse_Checker_Prover_Base.k = - (pst.Pulse_Checker_Prover_Base.k); - Pulse_Checker_Prover_Base.goals_inv = (); - Pulse_Checker_Prover_Base.solved_inv = (); - Pulse_Checker_Prover_Base.progress = false; - Pulse_Checker_Prover_Base.allow_ambiguous = - (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun pst1 -> + let uu___2 = + prover_iteration_loop preamble pst1 + [P + ("elim_exists", + Pulse_Checker_Prover_ElimExists.elim_exists_pst); + P ("collect_exists", prover_pass_collect_exists); + P + ("explode", + Pulse_Checker_Prover_Explode.explode); + P + ("match_syntactic", + Pulse_Checker_Prover_Match.match_syntactic); + P + ("match_fastunif", + Pulse_Checker_Prover_Match.match_fastunif); + P + ("match_fastunif_i", + Pulse_Checker_Prover_Match.match_fastunif_i); + P + ("match_full", + Pulse_Checker_Prover_Match.match_full)] in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1279,34 +1339,12 @@ let (prover_iteration : (Prims.of_int (2)) (Prims.of_int (292)) (Prims.of_int (3))))) - (Obj.magic - (prover_iteration_loop preamble pst1 - [P - ("elim_exists", - Pulse_Checker_Prover_ElimExists.elim_exists_pst); - P - ("collect_exists", - prover_pass_collect_exists); - P - ("explode", - Pulse_Checker_Prover_Explode.explode); - P - ("match_syntactic", - Pulse_Checker_Prover_Match.match_syntactic); - P - ("match_fastunif", - Pulse_Checker_Prover_Match.match_fastunif); - P - ("match_fastunif_i", - Pulse_Checker_Prover_Match.match_fastunif_i); - P - ("match_full", - Pulse_Checker_Prover_Match.match_full)])) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - res_advance preamble pst0 pst1 uu___)))) - uu___))) uu___) + (fun uu___4 -> + res_advance preamble pst0 pst1 uu___3)))) + uu___2))) uu___1) let rec (prover : Pulse_Checker_Prover_Base.preamble -> unit Pulse_Checker_Prover_Base.prover_state -> @@ -1315,65 +1353,96 @@ let rec (prover : = fun preamble -> fun pst0 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (300)) (Prims.of_int (2)) (Prims.of_int (304)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (304)) (Prims.of_int (35)) - (Prims.of_int (369)) (Prims.of_int (40))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover - pst0.Pulse_Checker_Prover_Base.pg - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (304)) (Prims.of_int (6)) - (Prims.of_int (304)) (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (301)) (Prims.of_int (4)) - (Prims.of_int (304)) (Prims.of_int (33))))) - (Obj.magic - (Pulse_Show.show Pulse_Show.tac_showable_bool - pst0.Pulse_Checker_Prover_Base.allow_ambiguous)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (301)) - (Prims.of_int (4)) - (Prims.of_int (304)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (301)) - (Prims.of_int (4)) - (Prims.of_int (304)) - (Prims.of_int (33))))) - (Obj.magic + let uu___ = + Pulse_Checker_Prover_Util.debug_prover + pst0.Pulse_Checker_Prover_Base.pg + (fun uu___1 -> + let uu___2 = + Pulse_Show.show Pulse_Show.tac_showable_bool + pst0.Pulse_Checker_Prover_Base.allow_ambiguous in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (304)) (Prims.of_int (6)) + (Prims.of_int (304)) (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (301)) (Prims.of_int (4)) + (Prims.of_int (304)) (Prims.of_int (33))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + Pulse_Show.show Pulse_Show.tac_showable_r_term + (Pulse_Syntax_Pure.list_as_slprop + pst0.Pulse_Checker_Prover_Base.unsolved) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (303)) (Prims.of_int (6)) + (Prims.of_int (303)) (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (301)) (Prims.of_int (4)) + (Prims.of_int (304)) (Prims.of_int (33))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + (Pulse_Syntax_Pure.list_as_slprop + pst0.Pulse_Checker_Prover_Base.remaining_ctxt) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (302)) + (Prims.of_int (6)) + (Prims.of_int (302)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "At the prover top-level with remaining_ctxt: " + (Prims.strcat uu___9 + "\n unsolved: ")) + (Prims.strcat x + "\n allow_ambiguous: ")) + (Prims.strcat x1 "\n"))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (303)) - (Prims.of_int (6)) - (Prims.of_int (303)) - (Prims.of_int (43))))) + (Prims.of_int (301)) + (Prims.of_int (4)) + (Prims.of_int (304)) + (Prims.of_int (33))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1382,81 +1451,45 @@ let rec (prover : (Prims.of_int (4)) (Prims.of_int (304)) (Prims.of_int (33))))) - (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - (Pulse_Syntax_Pure.list_as_slprop - pst0.Pulse_Checker_Prover_Base.unsolved))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (301)) - (Prims.of_int (4)) - (Prims.of_int (304)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (301)) - (Prims.of_int (4)) - (Prims.of_int (304)) - (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (302)) - (Prims.of_int (6)) - (Prims.of_int (302)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - (Pulse_Syntax_Pure.list_as_slprop - pst0.Pulse_Checker_Prover_Base.remaining_ctxt))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "At the prover top-level with remaining_ctxt: " - (Prims.strcat - uu___3 - "\n unsolved: ")) - (Prims.strcat - x - "\n allow_ambiguous: ")) - (Prims.strcat - x1 "\n"))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) uu___1)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> uu___8 uu___6)))) + uu___6) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (301)) (Prims.of_int (4)) + (Prims.of_int (304)) (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (301)) (Prims.of_int (4)) + (Prims.of_int (304)) (Prims.of_int (33))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (300)) (Prims.of_int (2)) (Prims.of_int (304)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (304)) (Prims.of_int (35)) + (Prims.of_int (369)) (Prims.of_int (40))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Pulse_Checker_Prover_ElimPure.elim_pure_pst preamble pst0 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1469,21 +1502,21 @@ let rec (prover : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (310)) (Prims.of_int (2)) (Prims.of_int (369)) (Prims.of_int (40))))) - (Obj.magic - (Pulse_Checker_Prover_ElimPure.elim_pure_pst preamble - pst0)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun pst01 -> match pst01.Pulse_Checker_Prover_Base.unsolved with | [] -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> pst01))) - | uu___1 -> + (fun uu___3 -> pst01))) + | uu___3 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + normalize_slprop_context preamble pst01 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1500,11 +1533,50 @@ let rec (prover : (Prims.of_int (46)) (Prims.of_int (369)) (Prims.of_int (40))))) - (Obj.magic - (normalize_slprop_context preamble - pst01)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun pst -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + { + Pulse_Checker_Prover_Base.pg + = + (pst.Pulse_Checker_Prover_Base.pg); + Pulse_Checker_Prover_Base.remaining_ctxt + = + (pst.Pulse_Checker_Prover_Base.remaining_ctxt); + Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.uvs + = + (pst.Pulse_Checker_Prover_Base.uvs); + Pulse_Checker_Prover_Base.ss + = + (pst.Pulse_Checker_Prover_Base.ss); + Pulse_Checker_Prover_Base.nts + = + (pst.Pulse_Checker_Prover_Base.nts); + Pulse_Checker_Prover_Base.solved + = + (pst.Pulse_Checker_Prover_Base.solved); + Pulse_Checker_Prover_Base.unsolved + = + (pst.Pulse_Checker_Prover_Base.unsolved); + Pulse_Checker_Prover_Base.k + = + (pst.Pulse_Checker_Prover_Base.k); + Pulse_Checker_Prover_Base.goals_inv + = (); + Pulse_Checker_Prover_Base.solved_inv + = (); + Pulse_Checker_Prover_Base.progress + = false; + Pulse_Checker_Prover_Base.allow_ambiguous + = + (pst.Pulse_Checker_Prover_Base.allow_ambiguous) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1523,47 +1595,12 @@ let rec (prover : (Prims.of_int (4)) (Prims.of_int (369)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - { - Pulse_Checker_Prover_Base.pg - = - (pst.Pulse_Checker_Prover_Base.pg); - Pulse_Checker_Prover_Base.remaining_ctxt - = - (pst.Pulse_Checker_Prover_Base.remaining_ctxt); - Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.uvs - = - (pst.Pulse_Checker_Prover_Base.uvs); - Pulse_Checker_Prover_Base.ss - = - (pst.Pulse_Checker_Prover_Base.ss); - Pulse_Checker_Prover_Base.nts - = - (pst.Pulse_Checker_Prover_Base.nts); - Pulse_Checker_Prover_Base.solved - = - (pst.Pulse_Checker_Prover_Base.solved); - Pulse_Checker_Prover_Base.unsolved - = - (pst.Pulse_Checker_Prover_Base.unsolved); - Pulse_Checker_Prover_Base.k - = - (pst.Pulse_Checker_Prover_Base.k); - Pulse_Checker_Prover_Base.goals_inv - = (); - Pulse_Checker_Prover_Base.solved_inv - = (); - Pulse_Checker_Prover_Base.progress - = false; - Pulse_Checker_Prover_Base.allow_ambiguous - = - (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun pst1 -> + let uu___6 = + prover_iteration + preamble pst1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1582,13 +1619,10 @@ let rec (prover : (Prims.of_int (4)) (Prims.of_int (369)) (Prims.of_int (40))))) - (Obj.magic - (prover_iteration - preamble - pst1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + match uu___7 with | Stepped pst' -> @@ -1598,6 +1632,12 @@ let rec (prover : pst') | NoProgress -> + let uu___8 + = + intro_any_exists + preamble + pst1 + prover in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1617,12 +1657,9 @@ let rec (prover : (Prims.of_int (369)) (Prims.of_int (40))))) (Obj.magic - (intro_any_exists - preamble - pst1 - prover)) + uu___8) (fun - uu___3 -> + uu___9 -> (fun pst2 -> if @@ -1644,13 +1681,25 @@ let rec (prover : Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - pst2)) + uu___10 + -> pst2)) | hd::unsolved' -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + collect_pures + (Pulse_Typing_Env.push_env + pst2.Pulse_Checker_Prover_Base.pg + pst2.Pulse_Checker_Prover_Base.uvs) + pst2.Pulse_Checker_Prover_Base.unsolved)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1667,25 +1716,34 @@ let rec (prover : (Prims.of_int (24)) (Prims.of_int (369)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - collect_pures - (Pulse_Typing_Env.push_env - pst2.Pulse_Checker_Prover_Base.pg - pst2.Pulse_Checker_Prover_Base.uvs) - pst2.Pulse_Checker_Prover_Base.unsolved)) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> - match uu___4 + uu___11 + -> + match uu___11 with | FStar_Pervasives.Mkdtuple3 (pures, rest, d) -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + unsolved_equiv_pst + preamble + pst2 + (FStar_List_Tot_Base.op_At + rest + pures) ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1704,17 +1762,11 @@ let rec (prover : (Prims.of_int (10)) (Prims.of_int (369)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - unsolved_equiv_pst - preamble - pst2 - (FStar_List_Tot_Base.op_At - rest - pures) ())) + (Obj.magic + uu___12) (fun - uu___5 -> + uu___13 + -> (fun pst3 -> match @@ -1726,8 +1778,8 @@ let rec (prover : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - pst3))) + uu___13 + -> pst3))) | q::tl -> Obj.magic @@ -1738,12 +1790,32 @@ let rec (prover : with | Pulse_Syntax_Pure.Tm_Pure - uu___5 -> + uu___13 + -> prove_pures preamble pst3 | - uu___5 -> + uu___13 + -> + let uu___14 + = + FStar_Tactics_Util.filter + (fun + uu___15 + -> + (fun t -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Prims.op_Negation + (Pulse_Syntax_Pure.uu___is_Tm_Pure + (Pulse_Syntax_Pure.inspect_term + t))))) + uu___15) + pst3.Pulse_Checker_Prover_Base.unsolved in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1762,25 +1834,31 @@ let rec (prover : (Prims.of_int (369)) (Prims.of_int (40))))) (Obj.magic - (FStar_Tactics_Util.filter + uu___14) (fun - uu___6 -> - (fun t -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac + uu___15 + -> (fun - uu___6 -> - Prims.op_Negation - (Pulse_Syntax_Pure.uu___is_Tm_Pure - (Pulse_Syntax_Pure.inspect_term - t))))) - uu___6) - pst3.Pulse_Checker_Prover_Base.unsolved)) + non_pures + -> + let uu___15 + = + FStar_Tactics_Util.map (fun - uu___6 -> + uu___16 + -> + (fun q1 + -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - non_pures + uu___16 -> + Pulse_Checker_Prover_Base.op_Array_Access + pst3.Pulse_Checker_Prover_Base.ss + q1))) + uu___16) + non_pures in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1800,25 +1878,23 @@ let rec (prover : (Prims.of_int (369)) (Prims.of_int (40))))) (Obj.magic - (FStar_Tactics_Util.map + uu___15) (fun - uu___6 -> - (fun q1 + uu___16 + -> + (fun + non_pures1 -> + let uu___16 + = Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___17 + -> Pulse_Checker_Prover_Base.op_Array_Access pst3.Pulse_Checker_Prover_Base.ss - q1))) - uu___6) - non_pures)) - (fun - uu___6 -> - (fun - non_pures1 - -> + q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1837,16 +1913,18 @@ let rec (prover : (Prims.of_int (14)) (Prims.of_int (369)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Checker_Prover_Base.op_Array_Access - pst3.Pulse_Checker_Prover_Base.ss - q)) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun q_norm -> + let uu___17 + = + check_equiv_emp' + pst3.Pulse_Checker_Prover_Base.pg + q_norm in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1866,39 +1944,25 @@ let rec (prover : (Prims.of_int (369)) (Prims.of_int (40))))) (Obj.magic - (check_equiv_emp' - pst3.Pulse_Checker_Prover_Base.pg - q_norm)) + uu___17) (fun - uu___6 -> + uu___18 + -> (fun - uu___6 -> - match uu___6 + uu___18 + -> + match uu___18 with | FStar_Pervasives_Native.Some tok -> + let uu___19 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (349)) - (Prims.of_int (29)) - (Prims.of_int (351)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (353)) - (Prims.of_int (16)) - (Prims.of_int (353)) - (Prims.of_int (27))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___20 + -> { Pulse_Checker_Prover_Base.pg = @@ -1936,93 +2000,85 @@ let rec (prover : Pulse_Checker_Prover_Base.allow_ambiguous = (pst3.Pulse_Checker_Prover_Base.allow_ambiguous) - })) - (fun - uu___7 -> - (fun pst' - -> - Obj.magic - (prover - preamble - pst')) - uu___7)) - | - FStar_Pervasives_Native.None - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (365)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (369)) - (Prims.of_int (16)) - (Prims.of_int (369)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (360)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (365)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (356)) - (Prims.of_int (18)) - (Prims.of_int (357)) - (Prims.of_int (70))))) + (Prims.of_int (349)) + (Prims.of_int (29)) + (Prims.of_int (351)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (360)) - (Prims.of_int (17))))) + (Prims.of_int (353)) + (Prims.of_int (16)) + (Prims.of_int (353)) + (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + (fun pst' + -> + Obj.magic + (prover + preamble + pst')) + uu___20)) + | + FStar_Pervasives_Native.None + -> + let uu___19 + = + let uu___20 + = + let uu___21 + = + let uu___22 + = + let uu___23 + = + let uu___24 + = + Pulse_Syntax_Pure.canon_slprop_list_print + non_pures1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (357)) - (Prims.of_int (22)) + (Prims.of_int (36)) (Prims.of_int (357)) - (Prims.of_int (70))))) + (Prims.of_int (69))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (356)) - (Prims.of_int (18)) + (Prims.of_int (357)) + (Prims.of_int (29)) (Prims.of_int (357)) (Prims.of_int (70))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24) + (fun + uu___25 + -> + (fun + uu___25 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___25)) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2040,83 +2096,55 @@ let rec (prover : (Prims.of_int (357)) (Prims.of_int (70))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + Pulse_PP.indent + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (357)) - (Prims.of_int (36)) + (Prims.of_int (22)) (Prims.of_int (357)) - (Prims.of_int (69))))) + (Prims.of_int (70))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (357)) - (Prims.of_int (29)) + (Prims.of_int (356)) + (Prims.of_int (18)) (Prims.of_int (357)) (Prims.of_int (70))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_list_print - non_pures1)) + uu___22) (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___7)) - uu___7))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - Pulse_PP.indent - uu___7)))) - (fun - uu___7 -> + uu___23 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___24 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text "Cannot prove:") - uu___7)))) - (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (360)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (355)) - (Prims.of_int (26)) - (Prims.of_int (360)) - (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (358)) + (Prims.of_int (356)) (Prims.of_int (18)) - (Prims.of_int (359)) - (Prims.of_int (79))))) + (Prims.of_int (357)) + (Prims.of_int (70))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2126,25 +2154,56 @@ let rec (prover : (Prims.of_int (360)) (Prims.of_int (17))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + let uu___23 + = + let uu___24 + = + let uu___25 + = + let uu___26 + = + let uu___27 + = + Pulse_Syntax_Pure.canon_slprop_list_print + pst3.Pulse_Checker_Prover_Base.remaining_ctxt in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (359)) - (Prims.of_int (22)) + (Prims.of_int (36)) (Prims.of_int (359)) - (Prims.of_int (79))))) + (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (358)) - (Prims.of_int (18)) + (Prims.of_int (359)) + (Prims.of_int (29)) (Prims.of_int (359)) (Prims.of_int (79))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27) + (fun + uu___28 + -> + (fun + uu___28 + -> + Obj.magic + (Pulse_PP.pp + Pulse_PP.printable_term + uu___28)) + uu___28) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2162,79 +2221,113 @@ let rec (prover : (Prims.of_int (359)) (Prims.of_int (79))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + Pulse_PP.indent + uu___27)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (359)) - (Prims.of_int (36)) + (Prims.of_int (22)) (Prims.of_int (359)) - (Prims.of_int (78))))) + (Prims.of_int (79))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (359)) - (Prims.of_int (29)) + (Prims.of_int (358)) + (Prims.of_int (18)) (Prims.of_int (359)) (Prims.of_int (79))))) (Obj.magic - (Pulse_Syntax_Pure.canon_slprop_list_print - pst3.Pulse_Checker_Prover_Base.remaining_ctxt)) - (fun - uu___8 -> + uu___25) (fun - uu___8 -> - Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - uu___8)) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Pulse_PP.indent - uu___8)))) - (fun - uu___8 -> + uu___26 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___27 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text "In the context:") - uu___8)))) + uu___26)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (358)) + (Prims.of_int (18)) + (Prims.of_int (359)) + (Prims.of_int (79))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) + (Prims.of_int (360)) + (Prims.of_int (17))))) + (Obj.magic + uu___24) (fun - uu___8 -> + uu___25 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - [uu___8])))) + uu___26 + -> + [uu___25])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) + (Prims.of_int (360)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) + (Prims.of_int (360)) + (Prims.of_int (17))))) + (Obj.magic + uu___23) (fun - uu___8 -> + uu___24 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - uu___7 :: - uu___8)))) - uu___7))) - (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25 + -> + uu___22 + :: + uu___24)))) + uu___22) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) (Prims.of_int (360)) - (Prims.of_int (20)) - (Prims.of_int (365)) - (Prims.of_int (30))))) + (Prims.of_int (17))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2244,7 +2337,20 @@ let rec (prover : (Prims.of_int (365)) (Prims.of_int (30))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___20) + (fun + uu___21 + -> + (fun + uu___21 + -> + let uu___22 + = + let uu___23 + = + Pulse_Config.debug_flag + "initial_solver_state" in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2262,105 +2368,94 @@ let rec (prover : (Prims.of_int (365)) (Prims.of_int (30))))) (Obj.magic - (Pulse_Config.debug_flag - "initial_solver_state")) + uu___23) (fun - uu___8 -> + uu___24 + -> (fun - uu___8 -> - if uu___8 + uu___24 + -> + if + uu___24 then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___25 + = + let uu___26 + = + let uu___27 + = + Pulse_PP.pp + Pulse_PP.printable_term + preamble.Pulse_Checker_Prover_Base.goals in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (361)) - (Prims.of_int (22)) + (Prims.of_int (362)) + (Prims.of_int (33)) (Prims.of_int (362)) (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (360)) - (Prims.of_int (76)) - (Prims.of_int (365)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" (Prims.of_int (362)) (Prims.of_int (26)) (Prims.of_int (362)) (Prims.of_int (52))))) - (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (361)) - (Prims.of_int (22)) - (Prims.of_int (362)) - (Prims.of_int (52))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27) + (fun + uu___28 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___29 + -> + Pulse_PP.indent + uu___28)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (362)) - (Prims.of_int (33)) + (Prims.of_int (26)) (Prims.of_int (362)) (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (362)) - (Prims.of_int (26)) + (Prims.of_int (361)) + (Prims.of_int (22)) (Prims.of_int (362)) (Prims.of_int (52))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - preamble.Pulse_Checker_Prover_Base.goals)) + uu___26) (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 + uu___27 -> - Pulse_PP.indent - uu___9)))) - (fun - uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___28 -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text "The prover was started with goal:") - uu___9)))) - (fun - uu___9 -> - (fun - uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (360)) - (Prims.of_int (76)) - (Prims.of_int (365)) - (Prims.of_int (21))))) + (Prims.of_int (361)) + (Prims.of_int (22)) + (Prims.of_int (362)) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2370,25 +2465,53 @@ let rec (prover : (Prims.of_int (365)) (Prims.of_int (21))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + (fun + uu___26 + -> + let uu___27 + = + let uu___28 + = + let uu___29 + = + let uu___30 + = + Pulse_PP.pp + Pulse_PP.printable_term + preamble.Pulse_Checker_Prover_Base.ctxt in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (363)) - (Prims.of_int (22)) + (Prims.of_int (364)) + (Prims.of_int (33)) (Prims.of_int (364)) (Prims.of_int (51))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (360)) - (Prims.of_int (76)) - (Prims.of_int (365)) - (Prims.of_int (21))))) + (Prims.of_int (364)) + (Prims.of_int (26)) + (Prims.of_int (364)) + (Prims.of_int (51))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___30) + (fun + uu___31 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___32 + -> + Pulse_PP.indent + uu___31)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2406,84 +2529,138 @@ let rec (prover : (Prims.of_int (364)) (Prims.of_int (51))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___29) + (fun + uu___30 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___31 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "and initial context:") + uu___30)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (364)) - (Prims.of_int (33)) + (Prims.of_int (363)) + (Prims.of_int (22)) (Prims.of_int (364)) (Prims.of_int (51))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (364)) - (Prims.of_int (26)) - (Prims.of_int (364)) - (Prims.of_int (51))))) + (Prims.of_int (360)) + (Prims.of_int (76)) + (Prims.of_int (365)) + (Prims.of_int (21))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - preamble.Pulse_Checker_Prover_Base.ctxt)) + uu___28) (fun - uu___10 + uu___29 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 - -> - Pulse_PP.indent - uu___10)))) - (fun - uu___10 + uu___30 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "and initial context:") - uu___10)))) + [uu___29])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (360)) + (Prims.of_int (76)) + (Prims.of_int (365)) + (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (360)) + (Prims.of_int (76)) + (Prims.of_int (365)) + (Prims.of_int (21))))) + (Obj.magic + uu___27) (fun - uu___10 + uu___28 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 - -> - [uu___10])))) - (fun - uu___10 + uu___29 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> uu___9 + uu___26 :: - uu___10)))) - uu___9))) + uu___28)))) + uu___26))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___26 -> [])))) - uu___8))) + uu___24) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (360)) + (Prims.of_int (20)) + (Prims.of_int (365)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) + (Prims.of_int (365)) + (Prims.of_int (30))))) + (Obj.magic + uu___22) (fun - uu___8 -> + uu___23 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___24 + -> FStar_List_Tot_Base.op_At - uu___7 - uu___8)))) - uu___7))) + uu___21 + uu___23)))) + uu___21) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (355)) + (Prims.of_int (26)) + (Prims.of_int (365)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (369)) + (Prims.of_int (16)) + (Prims.of_int (369)) + (Prims.of_int (40))))) + (Obj.magic + uu___19) (fun - uu___7 -> + uu___20 + -> (fun msg -> Obj.magic @@ -2491,17 +2668,17 @@ let rec (prover : pst3.Pulse_Checker_Prover_Base.pg FStar_Pervasives_Native.None msg)) - uu___7))) - uu___6))) - uu___6))) - uu___6))) - uu___6)))) - uu___5))) - uu___4))))) - uu___3))) - uu___2))) - uu___2))) uu___2)))) - uu___1))) uu___) + uu___20))) + uu___18))) + uu___17))) + uu___16))) + uu___15)))) + uu___13))) + uu___11))))) + uu___9))) + uu___7))) + uu___6))) uu___5)))) + uu___3))) uu___1) let rec (get_q_at_hd : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop Prims.list -> @@ -2544,6 +2721,80 @@ let (prove : fun uvs -> fun goals -> fun goals_typing -> + let uu___ = + Pulse_Checker_Prover_Util.debug_prover g + (fun uu___1 -> + let uu___2 = Pulse_Syntax_Printer.term_to_string goals in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (397)) (Prims.of_int (30)) + (Prims.of_int (397)) (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (396)) (Prims.of_int (4)) + (Prims.of_int (397)) (Prims.of_int (54))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + Pulse_Syntax_Printer.term_to_string ctxt in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (397)) + (Prims.of_int (6)) + (Prims.of_int (397)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + fun x -> + Prims.strcat + (Prims.strcat + "\nEnter top-level prove with ctxt: " + (Prims.strcat uu___6 + "\ngoals: ")) + (Prims.strcat x "\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (396)) + (Prims.of_int (4)) + (Prims.of_int (397)) + (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (396)) + (Prims.of_int (4)) + (Prims.of_int (397)) + (Prims.of_int (54))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) + uu___3)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2555,86 +2806,14 @@ let (prove : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (397)) (Prims.of_int (56)) (Prims.of_int (489)) (Prims.of_int (127))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover g - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (397)) - (Prims.of_int (30)) - (Prims.of_int (397)) - (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (396)) (Prims.of_int (4)) - (Prims.of_int (397)) - (Prims.of_int (54))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string goals)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (396)) - (Prims.of_int (4)) - (Prims.of_int (397)) - (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (396)) - (Prims.of_int (4)) - (Prims.of_int (397)) - (Prims.of_int (54))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (397)) - (Prims.of_int (6)) - (Prims.of_int (397)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ctxt)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat - "\nEnter top-level prove with ctxt: " - (Prims.strcat - uu___2 - "\ngoals: ")) - (Prims.strcat x - "\n"))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Syntax_Pure.slprop_as_list ctxt)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2653,11 +2832,25 @@ let (prove : (Prims.of_int (76)) (Prims.of_int (489)) (Prims.of_int (127))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Pure.slprop_as_list ctxt)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun ctxt_l -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + { + Pulse_Checker_Prover_Base.g0 = + g; + Pulse_Checker_Prover_Base.ctxt + = ctxt; + Pulse_Checker_Prover_Base.frame + = Pulse_Syntax_Pure.tm_emp; + Pulse_Checker_Prover_Base.ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.goals + = goals + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2676,22 +2869,66 @@ let (prove : (Prims.of_int (43)) (Prims.of_int (489)) (Prims.of_int (127))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - { - Pulse_Checker_Prover_Base.g0 - = g; - Pulse_Checker_Prover_Base.ctxt - = ctxt; - Pulse_Checker_Prover_Base.frame - = Pulse_Syntax_Pure.tm_emp; - Pulse_Checker_Prover_Base.ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.goals - = goals - })) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun preamble -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + { + Pulse_Checker_Prover_Base.pg + = g; + Pulse_Checker_Prover_Base.remaining_ctxt + = + (Pulse_Syntax_Pure.slprop_as_list + ctxt); + Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.uvs + = uvs; + Pulse_Checker_Prover_Base.ss + = + Pulse_Checker_Prover_Substs.empty; + Pulse_Checker_Prover_Base.nts + = + FStar_Pervasives_Native.None; + Pulse_Checker_Prover_Base.solved + = + Pulse_Syntax_Pure.tm_emp; + Pulse_Checker_Prover_Base.unsolved + = + (Pulse_Syntax_Pure.slprop_as_list + goals); + Pulse_Checker_Prover_Base.k + = + (Pulse_Checker_Base.k_elab_equiv + g g ctxt + (Pulse_Checker_Prover_Base.op_Star + preamble.Pulse_Checker_Prover_Base.ctxt + preamble.Pulse_Checker_Prover_Base.frame) + ctxt + (Pulse_Checker_Prover_Base.op_Star + (Pulse_Checker_Prover_Base.op_Star + (Pulse_Syntax_Pure.list_as_slprop + (Pulse_Syntax_Pure.slprop_as_list + ctxt)) + preamble.Pulse_Checker_Prover_Base.frame) + (Pulse_Checker_Prover_Base.op_Array_Access + Pulse_Checker_Prover_Substs.empty + Pulse_Syntax_Pure.tm_emp)) + (Pulse_Checker_Base.k_elab_unit + g ctxt) () + ()); + Pulse_Checker_Prover_Base.goals_inv + = (); + Pulse_Checker_Prover_Base.solved_inv + = (); + Pulse_Checker_Prover_Base.progress + = false; + Pulse_Checker_Prover_Base.allow_ambiguous + = allow_ambiguous + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2710,64 +2947,12 @@ let (prove : (Prims.of_int (8)) (Prims.of_int (489)) (Prims.of_int (127))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - { - Pulse_Checker_Prover_Base.pg - = g; - Pulse_Checker_Prover_Base.remaining_ctxt - = - (Pulse_Syntax_Pure.slprop_as_list - ctxt); - Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.uvs - = uvs; - Pulse_Checker_Prover_Base.ss - = - Pulse_Checker_Prover_Substs.empty; - Pulse_Checker_Prover_Base.nts - = - FStar_Pervasives_Native.None; - Pulse_Checker_Prover_Base.solved - = - Pulse_Syntax_Pure.tm_emp; - Pulse_Checker_Prover_Base.unsolved - = - (Pulse_Syntax_Pure.slprop_as_list - goals); - Pulse_Checker_Prover_Base.k - = - (Pulse_Checker_Base.k_elab_equiv - g g ctxt - (Pulse_Checker_Prover_Base.op_Star - preamble.Pulse_Checker_Prover_Base.ctxt - preamble.Pulse_Checker_Prover_Base.frame) - ctxt - (Pulse_Checker_Prover_Base.op_Star - (Pulse_Checker_Prover_Base.op_Star - (Pulse_Syntax_Pure.list_as_slprop - (Pulse_Syntax_Pure.slprop_as_list - ctxt)) - preamble.Pulse_Checker_Prover_Base.frame) - (Pulse_Checker_Prover_Base.op_Array_Access - Pulse_Checker_Prover_Substs.empty - Pulse_Syntax_Pure.tm_emp)) - (Pulse_Checker_Base.k_elab_unit - g ctxt) () - ()); - Pulse_Checker_Prover_Base.goals_inv - = (); - Pulse_Checker_Prover_Base.solved_inv - = (); - Pulse_Checker_Prover_Base.progress - = false; - Pulse_Checker_Prover_Base.allow_ambiguous - = - allow_ambiguous - })) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun pst0 -> + let uu___5 = + prover preamble + pst0 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2789,30 +2974,12 @@ let (prove : (Prims.of_int (489)) (Prims.of_int (127))))) (Obj.magic - (prover - preamble - pst0)) - (fun uu___1 -> + uu___5) + (fun uu___6 -> (fun pst -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (448)) - (Prims.of_int (6)) - (Prims.of_int (470)) - (Prims.of_int (24))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (440)) - (Prims.of_int (28)) - (Prims.of_int (489)) - (Prims.of_int (127))))) - (match + let uu___6 + = + match pst.Pulse_Checker_Prover_Base.nts with | @@ -2822,14 +2989,20 @@ let (prove : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___7 -> nts))) | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + Pulse_Checker_Prover_Substs.ss_to_nt_substs + pst.Pulse_Checker_Prover_Base.pg + pst.Pulse_Checker_Prover_Base.uvs + pst.Pulse_Checker_Prover_Base.ss in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2847,12 +3020,9 @@ let (prove : (Prims.of_int (470)) (Prims.of_int (24))))) (Obj.magic - (Pulse_Checker_Prover_Substs.ss_to_nt_substs - pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs - pst.Pulse_Checker_Prover_Base.ss)) + uu___7) (fun - uu___1 -> + uu___8 -> (fun r -> match r with @@ -2861,43 +3031,50 @@ let (prove : msg -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (10)) - (Prims.of_int (469)) - (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + let uu___10 + = + let uu___11 + = + Pulse_PP.pp + Pulse_PP.printable_env + pst.Pulse_Checker_Prover_Base.pg in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) + (Prims.of_int (464)) + (Prims.of_int (41)) + (Prims.of_int (464)) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) + (Prims.of_int (464)) + (Prims.of_int (12)) + (Prims.of_int (464)) + (Prims.of_int (52))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "pst.pg =") + uu___12)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2915,52 +3092,63 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + (fun + uu___11 + -> + let uu___12 + = + let uu___13 + = + let uu___14 + = + Pulse_PP.pp + Pulse_PP.printable_env + pst.Pulse_Checker_Prover_Base.uvs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (464)) - (Prims.of_int (41)) - (Prims.of_int (464)) - (Prims.of_int (52))))) + (Prims.of_int (465)) + (Prims.of_int (42)) + (Prims.of_int (465)) + (Prims.of_int (54))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (464)) + (Prims.of_int (465)) (Prims.of_int (12)) - (Prims.of_int (464)) - (Prims.of_int (52))))) + (Prims.of_int (465)) + (Prims.of_int (54))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_env - pst.Pulse_Checker_Prover_Base.pg)) + uu___14) (fun - uu___1 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___16 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "pst.pg =") - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "pst.uvs =") + uu___15)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) + (Prims.of_int (465)) + (Prims.of_int (12)) + (Prims.of_int (465)) + (Prims.of_int (54))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2970,15 +3158,63 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + (fun + uu___14 + -> + let uu___15 + = + let uu___16 + = + let uu___17 + = + Pulse_PP.pp + Pulse_Checker_Prover_Substs.pp_ss_t + pst.Pulse_Checker_Prover_Base.ss in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (465)) + (Prims.of_int (466)) + (Prims.of_int (41)) + (Prims.of_int (466)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (466)) + (Prims.of_int (12)) + (Prims.of_int (466)) + (Prims.of_int (52))))) + (Obj.magic + uu___17) + (fun + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "pst.ss =") + uu___18)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (466)) (Prims.of_int (12)) - (Prims.of_int (465)) - (Prims.of_int (54))))) + (Prims.of_int (466)) + (Prims.of_int (52))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2988,70 +3224,64 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + (fun + uu___17 + -> + let uu___18 + = + let uu___19 + = + let uu___20 + = + Pulse_PP.pp + (Pulse_PP.printable_list + Pulse_PP.printable_term) + pst.Pulse_Checker_Prover_Base.remaining_ctxt in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (465)) - (Prims.of_int (42)) - (Prims.of_int (465)) - (Prims.of_int (54))))) + (Prims.of_int (467)) + (Prims.of_int (53)) + (Prims.of_int (467)) + (Prims.of_int (76))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (465)) + (Prims.of_int (467)) (Prims.of_int (12)) - (Prims.of_int (465)) - (Prims.of_int (54))))) + (Prims.of_int (467)) + (Prims.of_int (76))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_env - pst.Pulse_Checker_Prover_Base.uvs)) + uu___20) (fun - uu___2 -> + uu___21 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___22 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "pst.uvs =") - uu___2)))) - (fun - uu___2 -> - (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "pst.remaining_ctxt =") + uu___21)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (466)) + (Prims.of_int (467)) (Prims.of_int (12)) - (Prims.of_int (466)) - (Prims.of_int (52))))) + (Prims.of_int (467)) + (Prims.of_int (76))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3061,52 +3291,64 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + (fun + uu___20 + -> + let uu___21 + = + let uu___22 + = + let uu___23 + = + Pulse_PP.pp + (Pulse_PP.printable_list + Pulse_PP.printable_term) + pst.Pulse_Checker_Prover_Base.unsolved in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (466)) - (Prims.of_int (41)) - (Prims.of_int (466)) - (Prims.of_int (52))))) + (Prims.of_int (468)) + (Prims.of_int (47)) + (Prims.of_int (468)) + (Prims.of_int (64))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (466)) + (Prims.of_int (468)) (Prims.of_int (12)) - (Prims.of_int (466)) - (Prims.of_int (52))))) + (Prims.of_int (468)) + (Prims.of_int (64))))) (Obj.magic - (Pulse_PP.pp - Pulse_Checker_Prover_Substs.pp_ss_t - pst.Pulse_Checker_Prover_Base.ss)) + uu___23) (fun - uu___3 -> + uu___24 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___25 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "pst.ss =") - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "pst.unsolved =") + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (462)) - (Prims.of_int (31)) - (Prims.of_int (469)) - (Prims.of_int (11))))) + (Prims.of_int (468)) + (Prims.of_int (12)) + (Prims.of_int (468)) + (Prims.of_int (64))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3116,15 +3358,25 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + [uu___23])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (467)) - (Prims.of_int (12)) - (Prims.of_int (467)) - (Prims.of_int (76))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3134,43 +3386,49 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic + uu___21) + (fun + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___23 + -> + uu___20 + :: + uu___22)))) + uu___20) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (467)) - (Prims.of_int (53)) - (Prims.of_int (467)) - (Prims.of_int (76))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (467)) - (Prims.of_int (12)) - (Prims.of_int (467)) - (Prims.of_int (76))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (Obj.magic - (Pulse_PP.pp - (Pulse_PP.printable_list - Pulse_PP.printable_term) - pst.Pulse_Checker_Prover_Base.remaining_ctxt)) + uu___18) (fun - uu___4 -> + uu___19 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "pst.remaining_ctxt =") - uu___4)))) - (fun - uu___4 -> - (fun - uu___4 -> + uu___20 + -> + uu___17 + :: + uu___19)))) + uu___17) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3190,15 +3448,28 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic + uu___15) + (fun + uu___16 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + uu___14 + :: + uu___16)))) + uu___14) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (468)) - (Prims.of_int (12)) - (Prims.of_int (468)) - (Prims.of_int (64))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3208,98 +3479,80 @@ let (prove : (Prims.of_int (469)) (Prims.of_int (11))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + uu___11 + :: + uu___13)))) + uu___11) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (468)) - (Prims.of_int (47)) - (Prims.of_int (468)) - (Prims.of_int (64))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (468)) - (Prims.of_int (12)) - (Prims.of_int (468)) - (Prims.of_int (64))))) + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) (Obj.magic - (Pulse_PP.pp - (Pulse_PP.printable_list - Pulse_PP.printable_term) - pst.Pulse_Checker_Prover_Base.unsolved)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "pst.unsolved =") - uu___5)))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - [uu___5])))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___4 :: - uu___5)))) - uu___4))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___2 :: - uu___3)))) - uu___2))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac + uu___9) (fun - uu___3 -> - uu___1 :: - uu___2)))) - uu___1))) - (fun - uu___1 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___11 + -> (Pulse_PP.text (Prims.strcat "Prover error: ill-typed substitutions (" (Prims.strcat msg ")"))) - :: uu___1)))) + :: + uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (462)) + (Prims.of_int (31)) + (Prims.of_int (469)) + (Prims.of_int (11))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (462)) + (Prims.of_int (10)) + (Prims.of_int (469)) + (Prims.of_int (11))))) + (Obj.magic + uu___8) (fun - uu___1 -> + uu___9 -> (fun - uu___1 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail_doc pst.Pulse_Checker_Prover_Base.pg FStar_Pervasives_Native.None - uu___1)) - uu___1))) + uu___9)) + uu___9))) | FStar_Pervasives.Inl nts -> @@ -3307,15 +3560,35 @@ let (prove : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___8 -> nts)))) - uu___1)))) + uu___8))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (448)) + (Prims.of_int (6)) + (Prims.of_int (470)) + (Prims.of_int (24))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (440)) + (Prims.of_int (28)) + (Prims.of_int (489)) + (Prims.of_int (127))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - match uu___1 + uu___8 -> + match uu___7 with | Prims.Mkdtuple2 @@ -3363,9 +3636,9 @@ let (prove : pst.Pulse_Checker_Prover_Base.remaining_ctxt)) pst.Pulse_Checker_Prover_Base.k () ()))))))) - uu___1))) - uu___1))) uu___1))) - uu___1))) uu___) + uu___6))) + uu___5))) uu___4))) + uu___3))) uu___1) let (canon_post : Pulse_Syntax_Base.comp_st -> Pulse_Syntax_Base.comp_st) = fun c -> let canon_st_comp_post c1 = @@ -3414,6 +3687,9 @@ let (try_frame_pre_uvs : fun uvs -> fun d -> fun res_ppname -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> d)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3425,11 +3701,18 @@ let (try_frame_pre_uvs : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (516)) (Prims.of_int (42)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> d)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (t, c, d1) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.push_context g + "try_frame_pre" + t.Pulse_Syntax_Base.range1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3448,13 +3731,12 @@ let (try_frame_pre_uvs : (Prims.of_int (51)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_context g - "try_frame_pre" - t.Pulse_Syntax_Base.range1)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun g1 -> + let uu___3 = + prove allow_ambiguous g1 ctxt () uvs + (Pulse_Syntax_Base.comp_pre c) () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3473,20 +3755,23 @@ let (try_frame_pre_uvs : (Prims.of_int (51)) (Prims.of_int (589)) (Prims.of_int (88))))) - (Obj.magic - (prove allow_ambiguous g1 ctxt - () uvs - (Pulse_Syntax_Base.comp_pre - c) ())) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple5 (g11, nts, effect_labels, remaining_ctxt, k_frame) -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Typing_Metatheory.st_typing_weakening + g1 uvs t c + d1 g11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3505,13 +3790,16 @@ let (try_frame_pre_uvs : (Prims.of_int (82)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Typing_Metatheory.st_typing_weakening - g1 uvs t c - d1 g11)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun d2 -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Checker_Prover_Substs.nt_subst_st_term + t nts)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3530,15 +3818,20 @@ let (try_frame_pre_uvs : (Prims.of_int (38)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Checker_Prover_Substs.nt_subst_st_term - t nts)) + (Obj.magic + uu___6) (fun - uu___2 -> + uu___7 -> (fun t1 -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + Pulse_Checker_Prover_Substs.nt_subst_comp + c nts)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3557,35 +3850,26 @@ let (try_frame_pre_uvs : (Prims.of_int (35)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Checker_Prover_Substs.nt_subst_comp - c nts)) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun c1 -> + let uu___8 + = + let uu___9 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (533)) - (Prims.of_int (28)) - (Prims.of_int (541)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (541)) - (Prims.of_int (19)) - (Prims.of_int (589)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Checker_Prover_Substs.st_typing_nt_substs_derived + g11 uvs t + c d2 nts + effect_labels)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3602,15 +3886,11 @@ let (try_frame_pre_uvs : (Prims.of_int (4)) (Prims.of_int (541)) (Prims.of_int (16))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Checker_Prover_Substs.st_typing_nt_substs_derived - g11 uvs t - c d2 nts - effect_labels)) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun r -> match r with @@ -3620,48 +3900,79 @@ let (try_frame_pre_uvs : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + x_t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (538)) - (Prims.of_int (8)) (Prims.of_int (540)) - (Prims.of_int (34))))) + (Prims.of_int (11)) + (Prims.of_int (540)) + (Prims.of_int (33))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (537)) - (Prims.of_int (6)) + (Prims.of_int (538)) + (Prims.of_int (8)) (Prims.of_int (540)) (Prims.of_int (34))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.st_term_to_string + t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (540)) + (Prims.of_int (539)) (Prims.of_int (11)) - (Prims.of_int (540)) - (Prims.of_int (33))))) + (Prims.of_int (539)) + (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (538)) + "FStar.Printf.fst" + (Prims.of_int (122)) (Prims.of_int (8)) - (Prims.of_int (540)) - (Prims.of_int (34))))) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - x_t)) + uu___14) (fun - uu___2 -> + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___16 + -> + fun x1 -> + Prims.strcat + (Prims.strcat + "prover error: for term " + (Prims.strcat + uu___15 + ", implicit solution ")) + (Prims.strcat + x1 + " has ghost effect"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3681,60 +3992,49 @@ let (try_frame_pre_uvs : (Prims.of_int (540)) (Prims.of_int (34))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + uu___14 + uu___12)))) + uu___12) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (539)) - (Prims.of_int (11)) - (Prims.of_int (539)) + (Prims.of_int (538)) + (Prims.of_int (8)) + (Prims.of_int (540)) (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.Prover.fst" + (Prims.of_int (537)) + (Prims.of_int (6)) + (Prims.of_int (540)) + (Prims.of_int (34))))) (Obj.magic - (Pulse_Syntax_Printer.st_term_to_string - t1)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x1 -> - Prims.strcat - (Prims.strcat - "prover error: for term " - (Prims.strcat - uu___3 - ", implicit solution ")) - (Prims.strcat - x1 - " has ghost effect"))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) + uu___10) (fun - uu___2 -> + uu___11 + -> (fun - uu___2 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g11 (FStar_Pervasives_Native.Some (t1.Pulse_Syntax_Base.range1)) - uu___2)) - uu___2))) + uu___11)) + uu___11))) | FStar_Pervasives.Inl d3 -> @@ -3742,13 +4042,42 @@ let (try_frame_pre_uvs : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - d3)))) - uu___2))) + uu___10 + -> d3)))) + uu___10) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (533)) + (Prims.of_int (28)) + (Prims.of_int (541)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (541)) + (Prims.of_int (19)) + (Prims.of_int (589)) + (Prims.of_int (88))))) + (Obj.magic + uu___8) (fun - uu___2 -> + uu___9 -> (fun d3 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + canon_post + c1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3767,15 +4096,23 @@ let (try_frame_pre_uvs : (Prims.of_int (25)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - canon_post - c1)) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun c2 -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + typing_canon + g11 t1 c1 + d3)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3794,16 +4131,23 @@ let (try_frame_pre_uvs : (Prims.of_int (27)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - typing_canon - g11 t1 c1 - d3)) + (Obj.magic + uu___10) (fun - uu___2 -> + uu___11 + -> (fun d4 -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + coerce_eq + k_frame + ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3822,17 +4166,23 @@ let (try_frame_pre_uvs : (Prims.of_int (105)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - coerce_eq - k_frame - ())) + (Obj.magic + uu___11) (fun - uu___2 -> + uu___12 + -> (fun k_frame1 -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing_Env.fresh + g11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3851,14 +4201,21 @@ let (try_frame_pre_uvs : (Prims.of_int (21)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Env.fresh - g11)) + (Obj.magic + uu___12) (fun - uu___2 -> + uu___13 + -> (fun x -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + Pulse_Syntax_Base.comp_res + c2)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3876,16 +4233,25 @@ let (try_frame_pre_uvs : (Prims.of_int (552)) (Prims.of_int (24)) (Prims.of_int (589)) - (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Base.comp_res - c2)) + (Prims.of_int (88))))) + (Obj.magic + uu___13) (fun - uu___2 -> + uu___14 + -> (fun ty -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Typing_Env.push_binding + g11 x + res_ppname + ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3904,17 +4270,27 @@ let (try_frame_pre_uvs : (Prims.of_int (31)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Env.push_binding - g11 x - res_ppname - ty)) + (Obj.magic + uu___14) (fun - uu___2 -> + uu___15 + -> (fun g2 -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Checker_Prover_Base.op_Star + (Pulse_Syntax_Naming.open_term_nv + (Pulse_Syntax_Base.comp_post + c2) + (res_ppname, + x)) + remaining_ctxt)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3933,20 +4309,25 @@ let (try_frame_pre_uvs : (Prims.of_int (78)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Checker_Prover_Base.op_Star - (Pulse_Syntax_Naming.open_term_nv - (Pulse_Syntax_Base.comp_post - c2) - (res_ppname, - x)) - remaining_ctxt)) + (Obj.magic + uu___15) (fun - uu___2 -> + uu___16 + -> (fun ctxt' -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Typing_Metatheory.st_typing_weakening_standard + g11 t1 + (canon_post + c1) d4 + g11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3965,18 +4346,22 @@ let (try_frame_pre_uvs : (Prims.of_int (76)) (Prims.of_int (589)) (Prims.of_int (88))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Metatheory.st_typing_weakening_standard - g11 t1 - (canon_post - c1) d4 - g11)) + (Obj.magic + uu___16) (fun - uu___2 -> + uu___17 + -> (fun d5 -> + let uu___17 + = + Pulse_Checker_Base.continuation_elaborator_with_bind + g11 + remaining_ctxt + c2 t1 d5 + () + (res_ppname, + x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3996,17 +4381,12 @@ let (try_frame_pre_uvs : (Prims.of_int (589)) (Prims.of_int (88))))) (Obj.magic - (Pulse_Checker_Base.continuation_elaborator_with_bind - g11 - remaining_ctxt - c2 t1 d5 - () - (res_ppname, - x))) + uu___17) (fun k -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___18 + -> match Pulse_Typing_Metatheory_Base.st_comp_typing_inversion_cofinite g11 @@ -4021,7 +4401,7 @@ let (try_frame_pre_uvs : with | (comp_res_typing_in_g1, - uu___3, + uu___19, f) -> FStar_Pervasives.Mkdtuple5 (x, g2, @@ -4054,19 +4434,19 @@ let (try_frame_pre_uvs : ctxt' ctxt' k () ()))))))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___2))) - uu___1))) uu___1))) uu___) + uu___17))) + uu___16))) + uu___15))) + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10))) + uu___9))) + uu___8))) + uu___7))) + uu___6))) + uu___4))) uu___3))) uu___1) let (try_frame_pre : Prims.bool -> Pulse_Typing_Env.env -> @@ -4085,6 +4465,12 @@ let (try_frame_pre : fun ctxt_typing -> fun d -> fun res_ppname -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env g))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4096,14 +4482,12 @@ let (try_frame_pre : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (602)) (Prims.of_int (2)) (Prims.of_int (602)) (Prims.of_int (64))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun uvs -> Obj.magic (try_frame_pre_uvs allow_ambiguous g ctxt () uvs d - res_ppname)) uu___) + res_ppname)) uu___1) let (prove_post_hint : Pulse_Typing_Env.env -> Pulse_Syntax_Base.slprop -> @@ -4118,6 +4502,11 @@ let (prove_post_hint : fun r -> fun post_hint -> fun rng -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing_Env.push_context g "prove_post_hint" rng)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4129,21 +4518,23 @@ let (prove_post_hint : (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (613)) (Prims.of_int (2)) (Prims.of_int (666)) (Prims.of_int (99))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_context g "prove_post_hint" rng)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> match post_hint with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> r))) + (fun uu___1 -> r))) | FStar_Pervasives_Native.Some post_hint1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> r)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4160,17 +4551,22 @@ let (prove_post_hint : (Prims.of_int (21)) (Prims.of_int (666)) (Prims.of_int (99))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> r)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives.Mkdtuple5 (x, g2, FStar_Pervasives.Mkdtuple3 (u_ty, ty, ty_typing), Prims.Mkdtuple2 (ctxt', ctxt'_typing), k) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Syntax_Base.mk_ppname_no_range + "_posth")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4189,12 +4585,16 @@ let (prove_post_hint : (Prims.of_int (47)) (Prims.of_int (666)) (Prims.of_int (99))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_posth")) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun ppname -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Syntax_Naming.open_term_nv + post_hint1.Pulse_Typing.post + (ppname, x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4213,12 +4613,8 @@ let (prove_post_hint : (Prims.of_int (4)) (Prims.of_int (666)) (Prims.of_int (99))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Naming.open_term_nv - post_hint1.Pulse_Typing.post - (ppname, x))) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun post_hint_opened -> @@ -4232,66 +4628,117 @@ let (prove_post_hint : Obj.magic ( Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 + = + let uu___6 + = + let uu___7 + = + let uu___8 + = + let uu___9 + = + let uu___10 + = + Pulse_PP.pp + Pulse_PP.printable_term + ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (624)) - (Prims.of_int (28)) - (Prims.of_int (630)) - (Prims.of_int (7))))) + (Prims.of_int (627)) + (Prims.of_int (17)) + (Prims.of_int (627)) + (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (624)) - (Prims.of_int (6)) - (Prims.of_int (630)) - (Prims.of_int (7))))) + (Prims.of_int (627)) + (Prims.of_int (10)) + (Prims.of_int (627)) + (Prims.of_int (24))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_PP.indent + uu___11)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (624)) - (Prims.of_int (28)) - (Prims.of_int (630)) - (Prims.of_int (7))))) + (Prims.of_int (627)) + (Prims.of_int (10)) + (Prims.of_int (627)) + (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (624)) - (Prims.of_int (28)) - (Prims.of_int (630)) - (Prims.of_int (7))))) + (Prims.of_int (627)) + (Prims.of_int (10)) + (Prims.of_int (629)) + (Prims.of_int (38))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + post_hint1.Pulse_Typing.ret_ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (626)) - (Prims.of_int (8)) + (Prims.of_int (629)) + (Prims.of_int (17)) (Prims.of_int (629)) (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (624)) - (Prims.of_int (28)) - (Prims.of_int (630)) - (Prims.of_int (7))))) + (Prims.of_int (629)) + (Prims.of_int (10)) + (Prims.of_int (629)) + (Prims.of_int (38))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_PP.indent + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (627)) + (Prims.of_int (629)) (Prims.of_int (10)) (Prims.of_int (629)) (Prims.of_int (38))))) @@ -4299,178 +4746,165 @@ let (prove_post_hint : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (626)) + (Prims.of_int (628)) (Prims.of_int (8)) (Prims.of_int (629)) (Prims.of_int (38))))) (Obj.magic + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "does not match the expected") + uu___13)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (627)) - (Prims.of_int (10)) - (Prims.of_int (627)) - (Prims.of_int (24))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (627)) - (Prims.of_int (10)) + (Prims.of_int (628)) + (Prims.of_int (8)) (Prims.of_int (629)) (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (627)) - (Prims.of_int (17)) - (Prims.of_int (627)) - (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" (Prims.of_int (627)) (Prims.of_int (10)) - (Prims.of_int (627)) - (Prims.of_int (24))))) + (Prims.of_int (629)) + (Prims.of_int (38))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - ty)) + uu___11) (fun - uu___1 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - Pulse_PP.indent - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___10 + uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (628)) - (Prims.of_int (8)) + (Prims.of_int (627)) + (Prims.of_int (10)) (Prims.of_int (629)) (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (627)) - (Prims.of_int (10)) + (Prims.of_int (626)) + (Prims.of_int (8)) (Prims.of_int (629)) (Prims.of_int (38))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "The return type") + uu___9)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (629)) - (Prims.of_int (10)) + (Prims.of_int (626)) + (Prims.of_int (8)) (Prims.of_int (629)) (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (628)) - (Prims.of_int (8)) - (Prims.of_int (629)) - (Prims.of_int (38))))) + (Prims.of_int (624)) + (Prims.of_int (28)) + (Prims.of_int (630)) + (Prims.of_int (7))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___7) + (fun + uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + [uu___8])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (629)) - (Prims.of_int (17)) - (Prims.of_int (629)) - (Prims.of_int (38))))) + (Prims.of_int (624)) + (Prims.of_int (28)) + (Prims.of_int (630)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (629)) - (Prims.of_int (10)) - (Prims.of_int (629)) - (Prims.of_int (38))))) + (Prims.of_int (624)) + (Prims.of_int (28)) + (Prims.of_int (630)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - post_hint1.Pulse_Typing.ret_ty)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_PP.indent - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "does not match the expected") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___1 - uu___2)))) - uu___1))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "The return type") - uu___1)))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - [uu___1])))) + uu___6) (fun - uu___1 -> + uu___7 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___8 -> (Pulse_PP.text "Error in proving postcondition") - :: uu___1)))) + :: uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (624)) + (Prims.of_int (28)) + (Prims.of_int (630)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (624)) + (Prims.of_int (6)) + (Prims.of_int (630)) + (Prims.of_int (7))))) + (Obj.magic + uu___5) (fun - uu___1 -> + uu___6 -> (fun - uu___1 -> + uu___6 -> Obj.magic (Pulse_Typing_Env.fail_doc g1 (FStar_Pervasives_Native.Some rng) - uu___1)) - uu___1))) + uu___6)) + uu___6))) else Obj.magic ( @@ -4483,7 +4917,7 @@ let (prove_post_hint : Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___6 -> FStar_Pervasives.Mkdtuple5 (x, g2, (FStar_Pervasives.Mkdtuple3 @@ -4494,7 +4928,17 @@ let (prove_post_hint : ())), k))) else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + prove + false g2 + ctxt' () + (Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g2)) + post_hint_opened + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4512,27 +4956,29 @@ let (prove_post_hint : (Prims.of_int (666)) (Prims.of_int (99))))) (Obj.magic - (prove - false g2 - ctxt' () - (Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g2)) - post_hint_opened - ())) + uu___7) (fun - uu___3 -> + uu___8 -> (fun - uu___3 -> - match uu___3 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple5 (g3, nts, - uu___4, + uu___9, remaining_ctxt, k_post) -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + coerce_eq + k_post ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4551,16 +4997,19 @@ let (prove_post_hint : (Prims.of_int (6)) (Prims.of_int (666)) (Prims.of_int (99))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - coerce_eq - k_post ())) + (Obj.magic + uu___10) (fun - uu___5 -> + uu___11 + -> (fun k_post1 -> + let uu___11 + = + check_equiv_emp' + g3 + remaining_ctxt in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4580,75 +5029,61 @@ let (prove_post_hint : (Prims.of_int (666)) (Prims.of_int (99))))) (Obj.magic - (check_equiv_emp' - g3 - remaining_ctxt)) + uu___11) (fun - uu___5 -> + uu___12 + -> (fun - uu___5 -> - match uu___5 + uu___12 + -> + match uu___12 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (644)) - (Prims.of_int (30)) - (Prims.of_int (652)) - (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (644)) - (Prims.of_int (8)) - (Prims.of_int (652)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (644)) - (Prims.of_int (30)) - (Prims.of_int (652)) - (Prims.of_int (9))))) + (let uu___13 + = + let uu___14 + = + let uu___15 + = + let uu___16 + = + let uu___17 + = + Pulse_Syntax_Printer.term_to_doc + remaining_ctxt in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (644)) - (Prims.of_int (30)) - (Prims.of_int (652)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (647)) + (Prims.of_int (28)) + (Prims.of_int (647)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (646)) - (Prims.of_int (10)) + (Prims.of_int (647)) + (Prims.of_int (21)) (Prims.of_int (647)) (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.fst" - (Prims.of_int (644)) - (Prims.of_int (30)) - (Prims.of_int (652)) - (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___17) + (fun + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + FStar_Pprint.align + uu___18)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4666,50 +5101,47 @@ let (prove_post_hint : (Prims.of_int (647)) (Prims.of_int (59))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Inferred postcondition additionally contains") + uu___17)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" + (Prims.of_int (646)) + (Prims.of_int (10)) (Prims.of_int (647)) - (Prims.of_int (28)) - (Prims.of_int (647)) - (Prims.of_int (58))))) + (Prims.of_int (59))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.fst" - (Prims.of_int (647)) - (Prims.of_int (21)) - (Prims.of_int (647)) - (Prims.of_int (59))))) + (Prims.of_int (644)) + (Prims.of_int (30)) + (Prims.of_int (652)) + (Prims.of_int (9))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_doc - remaining_ctxt)) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - FStar_Pprint.align - uu___6)))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Inferred postcondition additionally contains") - uu___6)))) + uu___15) (fun - uu___6 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - [uu___6; + uu___17 + -> + [uu___16; if Pulse_Syntax_Pure.uu___is_Tm_Star (Pulse_Syntax_Pure.inspect_term @@ -4719,26 +5151,69 @@ let (prove_post_hint : "Did you forget to free these resources?" else Pulse_PP.text - "Did you forget to free this resource?"])))) + "Did you forget to free this resource?"])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (644)) + (Prims.of_int (30)) + (Prims.of_int (652)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (644)) + (Prims.of_int (30)) + (Prims.of_int (652)) + (Prims.of_int (9))))) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___16 + -> (Pulse_PP.text "Error in proving postcondition") - :: uu___6)))) + :: + uu___15)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (644)) + (Prims.of_int (30)) + (Prims.of_int (652)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.fst" + (Prims.of_int (644)) + (Prims.of_int (8)) + (Prims.of_int (652)) + (Prims.of_int (9))))) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> (fun - uu___6 -> + uu___14 + -> Obj.magic (Pulse_Typing_Env.fail_doc g1 (FStar_Pervasives_Native.Some rng) - uu___6)) - uu___6))) + uu___14)) + uu___14))) | FStar_Pervasives_Native.Some d -> @@ -4746,7 +5221,8 @@ let (prove_post_hint : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___13 + -> FStar_Pervasives.Mkdtuple5 (x, g3, (FStar_Pervasives.Mkdtuple3 @@ -4774,8 +5250,9 @@ let (prove_post_hint : post_hint_opened k_post1 () ()))))))) - uu___5))) - uu___5))) - uu___3))))) - uu___1))) - uu___1))) uu___)))) uu___) \ No newline at end of file + uu___12))) + uu___11))) + uu___8))))) + uu___5))) + uu___4))) uu___2)))) + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Base.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Base.ml index f204d87d1..3738a456c 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Base.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Base.ml @@ -44,7 +44,8 @@ let rec (canon_right_aux : | hd::rest -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f hd in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -57,11 +58,12 @@ let rec (canon_right_aux : "Pulse.Checker.Prover.Base.fst" (Prims.of_int (41)) (Prims.of_int (4)) (Prims.of_int (65)) (Prims.of_int (7))))) - (Obj.magic (f hd)) - (fun uu___ -> - (fun uu___ -> - if uu___ + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + if uu___1 then + let uu___2 = canon_right_aux g rest f in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -80,45 +82,46 @@ let rec (canon_right_aux : (Prims.of_int (14)) (Prims.of_int (59)) (Prims.of_int (34))))) - (Obj.magic (canon_right_aux g rest f)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | FStar_Pervasives.Mkdtuple3 - (vps', fvps, uu___3) -> + (vps', fvps, uu___5) -> FStar_Pervasives.Mkdtuple3 (vps', (hd :: fvps), ())))) else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Base.fst" - (Prims.of_int (62)) - (Prims.of_int (33)) - (Prims.of_int (62)) - (Prims.of_int (57))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Base.fst" - (Prims.of_int (61)) - (Prims.of_int (14)) - (Prims.of_int (64)) - (Prims.of_int (33))))) - (Obj.magic (canon_right_aux g rest f)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with - | FStar_Pervasives.Mkdtuple3 - (vps', pures, uu___4) -> - FStar_Pervasives.Mkdtuple3 - ((hd :: vps'), pures, - ()))))) uu___)))) + (let uu___3 = canon_right_aux g rest f in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Base.fst" + (Prims.of_int (62)) + (Prims.of_int (33)) + (Prims.of_int (62)) + (Prims.of_int (57))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Base.fst" + (Prims.of_int (61)) + (Prims.of_int (14)) + (Prims.of_int (64)) + (Prims.of_int (33))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + match uu___4 with + | FStar_Pervasives.Mkdtuple3 + (vps', pures, uu___6) -> + FStar_Pervasives.Mkdtuple3 + ((hd :: vps'), pures, + ())))))) uu___1)))) uu___2 uu___1 uu___ let (canon_right : Pulse_Typing_Env.env -> @@ -139,6 +142,8 @@ let (canon_right : fun frame -> fun ctxt_frame_typing -> fun f -> + let uu___ = + canon_right_aux g (Pulse_Syntax_Pure.slprop_as_list ctxt) f in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -150,12 +155,11 @@ let (canon_right : (FStar_Range.mk_range "Pulse.Checker.Prover.Base.fst" (Prims.of_int (75)) (Prims.of_int (3)) (Prims.of_int (80)) (Prims.of_int (111))))) - (Obj.magic - (canon_right_aux g (Pulse_Syntax_Pure.slprop_as_list ctxt) f)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (vps', pures, veq) -> FStar_Pervasives.Mkdtuple3 ((list_as_slprop' @@ -200,6 +204,10 @@ let (elim_one : fun c1 -> fun e1_typing -> fun uvs -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -213,9 +221,15 @@ let (elim_one : "Pulse.Checker.Prover.Base.fst" (Prims.of_int (94)) (Prims.of_int (72)) (Prims.of_int (117)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ctxt_frame_typing -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env g uvs))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -234,12 +248,15 @@ let (elim_one : (Prims.of_int (35)) (Prims.of_int (117)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env g uvs))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun x -> + let uu___2 = + Pulse_Checker_Base.continuation_elaborator_with_bind + g + (Pulse_Syntax_Pure.tm_star ctxt + frame) c1 e1 e1_typing () + (nx, x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -258,15 +275,10 @@ let (elim_one : (Prims.of_int (2)) (Prims.of_int (117)) (Prims.of_int (40))))) - (Obj.magic - (Pulse_Checker_Base.continuation_elaborator_with_bind - g - (Pulse_Syntax_Pure.tm_star - ctxt frame) c1 e1 - e1_typing () (nx, x))) + (Obj.magic uu___2) (fun k -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___3 -> FStar_Pervasives.Mkdtuple4 ((Pulse_Typing_Env.push_binding g x nx @@ -307,8 +319,8 @@ let (elim_one : (nx, x)) ctxt) frame) k () - ())))))) uu___))) - uu___) + ())))))) uu___2))) + uu___1) let rec (elim_all : Pulse_Typing_Env.env -> (Pulse_Syntax_Base.slprop -> @@ -344,7 +356,11 @@ let rec (elim_all : | Pulse_Syntax_Pure.Tm_Star (ctxt', p) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ())) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -361,10 +377,10 @@ let rec (elim_all : (Prims.of_int (7)) (Prims.of_int (153)) (Prims.of_int (10))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun p_typing -> + let uu___1 = f p in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -383,14 +399,17 @@ let rec (elim_all : (Prims.of_int (7)) (Prims.of_int (153)) (Prims.of_int (10))))) - (Obj.magic (f p)) - (fun uu___ -> - (fun uu___ -> - if uu___ + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + if uu___2 then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 + = + mk g p () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -408,13 +427,12 @@ let rec (elim_all : (Prims.of_int (150)) (Prims.of_int (70))))) (Obj.magic - (mk g p - ())) + uu___3) (fun - uu___1 -> + uu___4 -> (fun - uu___1 -> - match uu___1 + uu___4 -> + match uu___4 with | FStar_Pervasives_Native.Some @@ -425,7 +443,16 @@ let rec (elim_all : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 + = + elim_one + g ctxt' + frame p + () nx e1 + c1 + e1_typing + uvs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -443,25 +470,26 @@ let rec (elim_all : (Prims.of_int (148)) (Prims.of_int (71))))) (Obj.magic - (elim_one - g ctxt' - frame p - () nx e1 - c1 - e1_typing - uvs)) + uu___5) (fun - uu___2 -> + uu___6 -> (fun - uu___2 -> - match uu___2 + uu___6 -> + match uu___6 with | FStar_Pervasives.Mkdtuple4 (g', - uu___3, + uu___7, ctxt_typing', k) -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + k)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -480,14 +508,36 @@ let rec (elim_all : (Prims.of_int (69)) (Prims.of_int (148)) (Prims.of_int (71))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - k)) + (Obj.magic + uu___8) (fun - uu___4 -> + uu___9 -> (fun k1 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Checker_Base.k_elab_equiv + g g' + (Pulse_Syntax_Pure.tm_star + (Pulse_Syntax_Pure.tm_star + ctxt' + frame) p) + (Pulse_Syntax_Pure.tm_star + (Pulse_Syntax_Pure.tm_star + ctxt' p) + frame) + (Pulse_Syntax_Pure.tm_star + uu___7 + frame) + (Pulse_Syntax_Pure.tm_star + uu___7 + frame) k1 + () ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -506,30 +556,20 @@ let rec (elim_all : (Prims.of_int (48)) (Prims.of_int (148)) (Prims.of_int (71))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Checker_Base.k_elab_equiv - g g' - (Pulse_Syntax_Pure.tm_star - (Pulse_Syntax_Pure.tm_star - ctxt' - frame) p) - (Pulse_Syntax_Pure.tm_star - (Pulse_Syntax_Pure.tm_star - ctxt' p) - frame) - (Pulse_Syntax_Pure.tm_star - uu___3 - frame) - (Pulse_Syntax_Pure.tm_star - uu___3 - frame) k1 - () ())) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun k2 -> + let uu___10 + = + elim_all + g' f mk + uu___7 + frame () + uvs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -549,20 +589,18 @@ let rec (elim_all : (Prims.of_int (148)) (Prims.of_int (71))))) (Obj.magic - (elim_all - g' f mk - uu___3 - frame () - uvs)) + uu___10) (fun - uu___4 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - match uu___4 + uu___12 + -> + match uu___11 with | - (uu___6, + (uu___13, FStar_Pervasives.Mkdtuple4 (g'', ctxt'', @@ -580,15 +618,15 @@ let rec (elim_all : ctxt' p) frame) (Pulse_Syntax_Pure.tm_star - uu___3 + uu___7 frame) (Pulse_Syntax_Pure.tm_star ctxt'' frame) k2 k')))))))) - uu___4))) - uu___4))) - uu___2))) + uu___10))) + uu___9))) + uu___6))) | FStar_Pervasives_Native.None -> @@ -596,7 +634,7 @@ let rec (elim_all : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___5 -> (false, (FStar_Pervasives.Mkdtuple4 (g, ctxt, @@ -606,13 +644,13 @@ let rec (elim_all : (Pulse_Syntax_Pure.tm_star ctxt frame))))))))) - uu___1))) + uu___4))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___4 -> (false, (FStar_Pervasives.Mkdtuple4 (g, ctxt, @@ -622,7 +660,7 @@ let rec (elim_all : (Pulse_Syntax_Pure.tm_star ctxt frame))))))))) - uu___))) uu___))) + uu___2))) uu___1))) | uu___ -> Obj.magic (Obj.repr @@ -660,6 +698,7 @@ let (add_elims_aux : fun mk -> fun ctxt_frame_typing -> fun uvs -> + let uu___ = canon_right g ctxt frame () f in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -671,12 +710,13 @@ let (add_elims_aux : (FStar_Range.mk_range "Pulse.Checker.Prover.Base.fst" (Prims.of_int (167)) (Prims.of_int (4)) (Prims.of_int (170)) (Prims.of_int (66))))) - (Obj.magic (canon_right g ctxt frame () f)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (ctxt', ctxt'_typing, k) -> + let uu___2 = elim_all g f mk ctxt' frame () uvs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -695,12 +735,11 @@ let (add_elims_aux : (Prims.of_int (74)) (Prims.of_int (170)) (Prims.of_int (66))))) - (Obj.magic - (elim_all g f mk ctxt' frame () uvs)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | (progress, FStar_Pervasives.Mkdtuple4 (g', ctxt'', ctxt''_typing, k')) @@ -716,7 +755,7 @@ let (add_elims_aux : ctxt' frame) (Pulse_Syntax_Pure.tm_star ctxt'' frame) k k')))))))) - uu___) + uu___1) let rec (add_elims : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -740,6 +779,7 @@ let rec (add_elims : fun mk -> fun ctxt_typing -> fun uvs -> + let uu___ = add_elims_aux g ctxt frame f mk () uvs in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -751,21 +791,25 @@ let rec (add_elims : (FStar_Range.mk_range "Pulse.Checker.Prover.Base.fst" (Prims.of_int (181)) (Prims.of_int (4)) (Prims.of_int (188)) (Prims.of_int (6))))) - (Obj.magic (add_elims_aux g ctxt frame f mk () uvs)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (progress, res) -> if Prims.op_Negation progress then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> res))) + (fun uu___2 -> res))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> res)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -782,14 +826,16 @@ let rec (add_elims : (Prims.of_int (10)) (Prims.of_int (188)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> res)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple4 (g', ctxt', ctxt'_typing, k) -> + let uu___5 = + add_elims g' ctxt' frame f + mk () uvs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -808,13 +854,11 @@ let rec (add_elims : (Prims.of_int (51)) (Prims.of_int (187)) (Prims.of_int (57))))) - (Obj.magic - (add_elims g' ctxt' - frame f mk () uvs)) - (fun uu___3 -> + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - match uu___3 + (fun uu___7 -> + match uu___6 with | FStar_Pervasives.Mkdtuple4 (g'', @@ -838,7 +882,7 @@ let rec (add_elims : ctxt'' frame) k k')))))) - uu___2)))) uu___) + uu___4)))) uu___1) type preamble = { g0: Pulse_Typing_Env.env ; diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimExists.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimExists.ml index e8c18a323..75c6d0348 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimExists.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimExists.ml @@ -101,6 +101,9 @@ let (elim_exists : fun g -> fun ctxt -> fun ctxt_typing -> + let uu___ = + elim_exists_frame g ctxt Pulse_Syntax_Pure.tm_emp () + (Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -112,13 +115,11 @@ let (elim_exists : (FStar_Range.mk_range "Pulse.Checker.Prover.ElimExists.fst" (Prims.of_int (67)) (Prims.of_int (85)) (Prims.of_int (72)) (Prims.of_int (62))))) - (Obj.magic - (elim_exists_frame g ctxt Pulse_Syntax_Pure.tm_emp () - (Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Mkdtuple4 (g', ctxt', ctxt'_emp_typing, k) -> FStar_Pervasives.Mkdtuple4 @@ -136,6 +137,15 @@ let (elim_exists_pst : = fun preamble -> fun pst -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + FStar_List_Tot_Base.existsb + (fun t -> + Pulse_Syntax_Pure.uu___is_Tm_ExistsSL + (Pulse_Syntax_Pure.inspect_term t)) + pst.Pulse_Checker_Prover_Base.remaining_ctxt)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -146,16 +156,19 @@ let (elim_exists_pst : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.ElimExists.fst" (Prims.of_int (80)) (Prims.of_int (92)) (Prims.of_int (120)) - (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_List_Tot_Base.existsb - (fun t -> - Pulse_Syntax_Pure.uu___is_Tm_ExistsSL - (Pulse_Syntax_Pure.inspect_term t)) - pst.Pulse_Checker_Prover_Base.remaining_ctxt)) - (fun uu___ -> + (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> (fun prog -> + let uu___1 = + elim_exists_frame pst.Pulse_Checker_Prover_Base.pg + (Pulse_Syntax_Pure.list_as_slprop + pst.Pulse_Checker_Prover_Base.remaining_ctxt) + (Pulse_Checker_Prover_Base.op_Star + preamble.Pulse_Checker_Prover_Base.frame + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + pst.Pulse_Checker_Prover_Base.solved)) () + pst.Pulse_Checker_Prover_Base.uvs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -170,20 +183,11 @@ let (elim_exists_pst : "Pulse.Checker.Prover.ElimExists.fst" (Prims.of_int (80)) (Prims.of_int (92)) (Prims.of_int (120)) (Prims.of_int (3))))) - (Obj.magic - (elim_exists_frame pst.Pulse_Checker_Prover_Base.pg - (Pulse_Syntax_Pure.list_as_slprop - pst.Pulse_Checker_Prover_Base.remaining_ctxt) - (Pulse_Checker_Prover_Base.op_Star - preamble.Pulse_Checker_Prover_Base.frame - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - pst.Pulse_Checker_Prover_Base.solved)) () - pst.Pulse_Checker_Prover_Base.uvs)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | FStar_Pervasives.Mkdtuple4 (g', remaining_ctxt', ty, k) -> { @@ -268,4 +272,4 @@ let (elim_exists_pst : Pulse_Checker_Prover_Base.progress = prog; Pulse_Checker_Prover_Base.allow_ambiguous = (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })))) uu___) \ No newline at end of file + })))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimPure.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimPure.ml index 636929437..b16b97dc8 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimPure.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_ElimPure.ml @@ -132,6 +132,9 @@ let (elim_pure : fun g -> fun ctxt -> fun ctxt_typing -> + let uu___ = + elim_pure_frame g ctxt Pulse_Syntax_Pure.tm_emp () + (Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -143,13 +146,11 @@ let (elim_pure : (FStar_Range.mk_range "Pulse.Checker.Prover.ElimPure.fst" (Prims.of_int (121)) (Prims.of_int (85)) (Prims.of_int (126)) (Prims.of_int (62))))) - (Obj.magic - (elim_pure_frame g ctxt Pulse_Syntax_Pure.tm_emp () - (Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Mkdtuple4 (g', ctxt', ctxt'_emp_typing, k) -> FStar_Pervasives.Mkdtuple4 @@ -167,6 +168,16 @@ let (elim_pure_pst : = fun preamble -> fun pst -> + let uu___ = + elim_pure_frame pst.Pulse_Checker_Prover_Base.pg + (Pulse_Syntax_Pure.list_as_slprop + pst.Pulse_Checker_Prover_Base.remaining_ctxt) + (Pulse_Checker_Prover_Base.op_Star + preamble.Pulse_Checker_Prover_Base.frame + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + pst.Pulse_Checker_Prover_Base.solved)) () + pst.Pulse_Checker_Prover_Base.uvs in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -177,21 +188,11 @@ let (elim_pure_pst : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.ElimPure.fst" (Prims.of_int (132)) (Prims.of_int (74)) - (Prims.of_int (171)) (Prims.of_int (3))))) - (Obj.magic - (elim_pure_frame pst.Pulse_Checker_Prover_Base.pg - (Pulse_Syntax_Pure.list_as_slprop - pst.Pulse_Checker_Prover_Base.remaining_ctxt) - (Pulse_Checker_Prover_Base.op_Star - preamble.Pulse_Checker_Prover_Base.frame - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - pst.Pulse_Checker_Prover_Base.solved)) () - pst.Pulse_Checker_Prover_Base.uvs)) - (fun uu___ -> + (Prims.of_int (171)) (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Mkdtuple4 (g', remaining_ctxt', ty, k) -> { Pulse_Checker_Prover_Base.pg = g'; diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Explode.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Explode.ml index 05c539ad1..50585c670 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Explode.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Explode.ml @@ -35,6 +35,12 @@ let (explode1 : fun preamble -> fun pst -> fun q -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss q)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -45,18 +51,14 @@ let (explode1 : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Explode.fst" (Prims.of_int (66)) (Prims.of_int (2)) (Prims.of_int (66)) - (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss q)) - (fun uu___ -> + (Prims.of_int (43))))) (Obj.magic uu___) + (fun uu___1 -> (fun q_ss -> Obj.magic (__explode1 (Pulse_Typing_Env.push_env pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs) q_ss)) uu___) + pst.Pulse_Checker_Prover_Base.uvs) q_ss)) uu___1) let rec (explode_aux : Pulse_Checker_Prover_Base.preamble -> unit Pulse_Checker_Prover_Base.prover_state -> @@ -85,7 +87,37 @@ let rec (explode_aux : | q::qs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = explode1 preamble pst q in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Explode.fst" + (Prims.of_int (78)) + (Prims.of_int (12)) + (Prims.of_int (78)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Explode.fst" + (Prims.of_int (78)) + (Prims.of_int (6)) + (Prims.of_int (80)) + (Prims.of_int (26))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + match uu___2 with + | FStar_Pervasives_Native.Some + (Prims.Mkdtuple2 + (qs1, uu___4)) -> + (qs1, true) + | FStar_Pervasives_Native.None + -> ([q], false))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -102,44 +134,16 @@ let rec (explode_aux : (Prims.of_int (12)) (Prims.of_int (82)) (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Explode.fst" - (Prims.of_int (78)) - (Prims.of_int (12)) - (Prims.of_int (78)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Explode.fst" - (Prims.of_int (78)) - (Prims.of_int (6)) - (Prims.of_int (80)) - (Prims.of_int (26))))) - (Obj.magic (explode1 preamble pst q)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | FStar_Pervasives_Native.Some - (Prims.Mkdtuple2 - (qs1, uu___2)) -> - (qs1, true) - | FStar_Pervasives_Native.None - -> ([q], false))))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (acc', prog') -> Obj.magic (explode_aux preamble pst (prog || prog') (FStar_List_Tot_Base.append - acc acc') qs)) uu___)))) + acc acc') qs)) uu___1)))) uu___4 uu___3 uu___2 uu___1 uu___ let (explode : Pulse_Checker_Prover_Base.preamble -> @@ -149,6 +153,9 @@ let (explode : = fun preamble -> fun pst -> + let uu___ = + explode_aux preamble pst false [] + pst.Pulse_Checker_Prover_Base.remaining_ctxt in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -159,14 +166,14 @@ let (explode : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Explode.fst" (Prims.of_int (87)) Prims.int_one (Prims.of_int (97)) - (Prims.of_int (3))))) - (Obj.magic - (explode_aux preamble pst false [] - pst.Pulse_Checker_Prover_Base.remaining_ctxt)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (remaining_ctxt, p1) -> + let uu___2 = + explode_aux preamble pst false [] + pst.Pulse_Checker_Prover_Base.unsolved in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -181,13 +188,11 @@ let (explode : "Pulse.Checker.Prover.Explode.fst" (Prims.of_int (88)) (Prims.of_int (73)) (Prims.of_int (97)) (Prims.of_int (3))))) - (Obj.magic - (explode_aux preamble pst false [] - pst.Pulse_Checker_Prover_Base.unsolved)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | (unsolved', p2) -> { Pulse_Checker_Prover_Base.pg = @@ -216,4 +221,4 @@ let (explode : Pulse_Checker_Prover_Base.allow_ambiguous = (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })))) uu___) \ No newline at end of file + })))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroExists.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroExists.ml index 62ddb5bcc..2a1a06f37 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroExists.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroExists.ml @@ -24,6 +24,19 @@ let (k_intro_exists : fun e_typing -> fun frame -> fun frame_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_IntroExists + { + Pulse_Syntax_Base.p5 = + (Pulse_Syntax_Pure.tm_exists_sl u b p); + Pulse_Syntax_Base.witnesses = [e] + }))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -37,19 +50,14 @@ let (k_intro_exists : "Pulse.Checker.Prover.IntroExists.fst" (Prims.of_int (46)) (Prims.of_int (71)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_IntroExists - { - Pulse_Syntax_Base.p5 = - (Pulse_Syntax_Pure.tm_exists_sl u b p); - Pulse_Syntax_Base.witnesses = [e] - }))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun t -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing.comp_intro_exists u b p e)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -68,11 +76,16 @@ let (k_intro_exists : (Prims.of_int (38)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.comp_intro_exists u b p e)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun c -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing.T_IntroExists + (g, u, b, p, e, (), (), + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -91,13 +104,15 @@ let (k_intro_exists : (Prims.of_int (45)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.T_IntroExists - (g, u, b, p, e, (), (), - ()))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun t_typing -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing_Env.fresh + g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -116,12 +131,17 @@ let (k_intro_exists : (Prims.of_int (52)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh - g)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun x -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___5 -> + Pulse_Syntax_Base.mk_ppname_no_range + "_pintroe")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -140,15 +160,34 @@ let (k_intro_exists : (Prims.of_int (47)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___ -> - Pulse_Syntax_Base.mk_ppname_no_range - "_pintroe")) - (fun uu___ + (Obj.magic + uu___4) + (fun uu___5 -> (fun ppname -> + let uu___5 + = + Pulse_Checker_Base.continuation_elaborator_with_bind + g frame + (Pulse_Typing.comp_intro_exists + u b p e) + (Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_IntroExists + { + Pulse_Syntax_Base.p5 + = + (Pulse_Syntax_Pure.tm_exists_sl + u b p); + Pulse_Syntax_Base.witnesses + = [e] + })) + t_typing + () + (ppname, + x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -168,34 +207,22 @@ let (k_intro_exists : (Prims.of_int (85)) (Prims.of_int (30))))) (Obj.magic - (Pulse_Checker_Base.continuation_elaborator_with_bind - g frame - (Pulse_Typing.comp_intro_exists - u b p e) - (Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_IntroExists - { - Pulse_Syntax_Base.p5 - = - (Pulse_Syntax_Pure.tm_exists_sl - u b p); - Pulse_Syntax_Base.witnesses - = [e] - })) - t_typing - () - (ppname, - x))) + uu___5) (fun k -> FStar_Tactics_Effect.lift_div_tac (fun - uu___ -> + uu___6 -> fun post_hint -> fun r -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + r)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -213,20 +240,25 @@ let (k_intro_exists : (Prims.of_int (20)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - r)) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple3 (t1, c1, d1) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> d1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -245,14 +277,23 @@ let (k_intro_exists : (Prims.of_int (36)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - d1)) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun d11 -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -271,17 +312,30 @@ let (k_intro_exists : (Prims.of_int (64)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g))) + (Obj.magic + uu___10) (fun - uu___2 -> + uu___11 + -> (fun empty_env -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Typing_Metatheory.st_typing_weakening + g + empty_env + t1 c1 d11 + (Pulse_Typing_Env.push_binding + g x + Pulse_Syntax_Base.ppname_default + (Pulse_Syntax_Base.comp_res + c)))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -300,20 +354,11 @@ let (k_intro_exists : (Prims.of_int (2)) (Prims.of_int (85)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Metatheory.st_typing_weakening - g - empty_env - t1 c1 d11 - (Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - (Pulse_Syntax_Base.comp_res - c)))) + (Obj.magic + uu___11) (fun - uu___2 -> + uu___12 + -> (fun d12 -> Obj.magic @@ -353,13 +398,13 @@ let (k_intro_exists : (FStar_Pervasives.Mkdtuple3 (t1, c1, d12)))) - uu___2))) - uu___2))) - uu___2))) - uu___1))))) - uu___))) - uu___))) uu___))) - uu___))) uu___) + uu___12))) + uu___11))) + uu___10))) + uu___8))))) + uu___5))) + uu___4))) uu___3))) + uu___2))) uu___1) let (intro_exists : Pulse_Checker_Prover_Base.preamble -> unit Pulse_Checker_Prover_Base.prover_state -> @@ -380,6 +425,14 @@ let (intro_exists : fun unsolved' -> fun uu___ -> fun prover -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env + pst.Pulse_Checker_Prover_Base.pg + pst.Pulse_Checker_Prover_Base.uvs))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -393,14 +446,12 @@ let (intro_exists : "Pulse.Checker.Prover.IntroExists.fst" (Prims.of_int (96)) (Prims.of_int (44)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env - pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs))) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun x -> + let uu___2 = + Pulse_Syntax_Base.ppname_for_uvar + b.Pulse_Syntax_Base.binder_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -419,11 +470,13 @@ let (intro_exists : (Prims.of_int (49)) (Prims.of_int (354)) (Prims.of_int (6))))) - (Obj.magic - (Pulse_Syntax_Base.ppname_for_uvar - b.Pulse_Syntax_Base.binder_ppname)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun ppname -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> (ppname, x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -442,10 +495,38 @@ let (intro_exists : (Prims.of_int (23)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> (ppname, x))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun px -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + { + Pulse_Checker_Prover_Base.g0 + = + (pst.Pulse_Checker_Prover_Base.pg); + Pulse_Checker_Prover_Base.ctxt + = + (Pulse_Syntax_Pure.list_as_slprop + pst.Pulse_Checker_Prover_Base.remaining_ctxt); + Pulse_Checker_Prover_Base.frame + = + (Pulse_Checker_Prover_Base.op_Star + preamble.Pulse_Checker_Prover_Base.frame + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + pst.Pulse_Checker_Prover_Base.solved)); + Pulse_Checker_Prover_Base.ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.goals + = + (Pulse_Checker_Prover_Base.op_Star + (Pulse_Syntax_Naming.open_term_nv + body px) + (Pulse_Syntax_Pure.list_as_slprop + unsolved')) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -464,56 +545,14 @@ let (intro_exists : (Prims.of_int (6)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - { - Pulse_Checker_Prover_Base.g0 - = - (pst.Pulse_Checker_Prover_Base.pg); - Pulse_Checker_Prover_Base.ctxt - = - (Pulse_Syntax_Pure.list_as_slprop - pst.Pulse_Checker_Prover_Base.remaining_ctxt); - Pulse_Checker_Prover_Base.frame - = - (Pulse_Checker_Prover_Base.op_Star - preamble.Pulse_Checker_Prover_Base.frame - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - pst.Pulse_Checker_Prover_Base.solved)); - Pulse_Checker_Prover_Base.ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.goals - = - (Pulse_Checker_Prover_Base.op_Star - (Pulse_Syntax_Naming.open_term_nv - body px) - (Pulse_Syntax_Pure.list_as_slprop - unsolved')) - })) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun preamble_sub -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (109)) - (Prims.of_int (107)) - (Prims.of_int (118)) - (Prims.of_int (18))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (120)) - (Prims.of_int (37)) - (Prims.of_int (354)) - (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 + -> coerce_eq (Pulse_Checker_Base.k_elab_equiv preamble_sub.Pulse_Checker_Prover_Base.g0 @@ -541,32 +580,37 @@ let (intro_exists : (Pulse_Checker_Prover_Base.op_Star preamble_sub.Pulse_Checker_Prover_Base.ctxt preamble_sub.Pulse_Checker_Prover_Base.frame)) - () ()) ())) - (fun uu___1 - -> - (fun k_sub - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + () ()) ())) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (122)) - (Prims.of_int (4)) - (Prims.of_int (134)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (109)) + (Prims.of_int (107)) + (Prims.of_int (118)) + (Prims.of_int (18))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (135)) - (Prims.of_int (6)) + (Prims.of_int (120)) + (Prims.of_int (37)) (Prims.of_int (354)) (Prims.of_int (6))))) + (Obj.magic + uu___5) + (fun uu___6 + -> + (fun k_sub + -> + let uu___6 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___7 -> { Pulse_Checker_Prover_Base.pg = @@ -610,12 +654,37 @@ let (intro_exists : Pulse_Checker_Prover_Base.allow_ambiguous = (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })) + })) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (122)) + (Prims.of_int (4)) + (Prims.of_int (134)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (135)) + (Prims.of_int (6)) + (Prims.of_int (354)) + (Prims.of_int (6))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun pst_sub -> + let uu___7 + = + prover + preamble_sub + pst_sub in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -635,14 +704,19 @@ let (intro_exists : (Prims.of_int (354)) (Prims.of_int (6))))) (Obj.magic - (prover - preamble_sub - pst_sub)) + uu___7) (fun - uu___1 -> + uu___8 -> (fun pst_sub1 -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -661,34 +735,16 @@ let (intro_exists : (Prims.of_int (77)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) + (Obj.magic + uu___8) (fun - uu___1 -> + uu___9 -> (fun pst_sub_goals_inv -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (147)) - (Prims.of_int (4)) - (Prims.of_int (157)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (140)) - (Prims.of_int (77)) - (Prims.of_int (354)) - (Prims.of_int (6))))) - (match + let uu___9 + = + match pst_sub1.Pulse_Checker_Prover_Base.nts with | @@ -698,14 +754,20 @@ let (intro_exists : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> - nts))) + uu___10 + -> nts))) | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + Pulse_Checker_Prover_Substs.ss_to_nt_substs + pst_sub1.Pulse_Checker_Prover_Base.pg + pst_sub1.Pulse_Checker_Prover_Base.uvs + pst_sub1.Pulse_Checker_Prover_Base.ss in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -723,12 +785,10 @@ let (intro_exists : (Prims.of_int (157)) (Prims.of_int (20))))) (Obj.magic - (Pulse_Checker_Prover_Substs.ss_to_nt_substs - pst_sub1.Pulse_Checker_Prover_Base.pg - pst_sub1.Pulse_Checker_Prover_Base.uvs - pst_sub1.Pulse_Checker_Prover_Base.ss)) + uu___10) (fun - uu___1 -> + uu___11 + -> (fun r -> match r with @@ -751,20 +811,50 @@ let (intro_exists : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> - nt)))) - uu___1)))) + uu___11 + -> nt)))) + uu___11))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (147)) + (Prims.of_int (4)) + (Prims.of_int (157)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (140)) + (Prims.of_int (77)) + (Prims.of_int (354)) + (Prims.of_int (6))))) + (Obj.magic + uu___9) (fun - uu___1 -> + uu___10 + -> (fun - uu___1 -> - match uu___1 + uu___10 + -> + match uu___10 with | Prims.Mkdtuple2 (nt, effect_labels) -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + uu___10)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -783,14 +873,21 @@ let (intro_exists : (Prims.of_int (75)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___11) (fun - uu___2 -> - uu___1)) + uu___12 + -> (fun - uu___2 -> + uu___12 + -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___14 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -809,15 +906,21 @@ let (intro_exists : (Prims.of_int (48)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())) + (Obj.magic + uu___13) (fun - uu___3 -> + uu___14 + -> (fun pst_sub_goals_inv1 -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -836,15 +939,21 @@ let (intro_exists : (Prims.of_int (92)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())) + (Obj.magic + uu___14) (fun - uu___3 -> + uu___15 + -> (fun pst_sub_goals_inv2 -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -863,15 +972,22 @@ let (intro_exists : (Prims.of_int (99)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())) + (Obj.magic + uu___15) (fun - uu___3 -> + uu___16 + -> (fun pst_sub_goals_inv3 -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + pst_sub1.Pulse_Checker_Prover_Base.k)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -890,35 +1006,20 @@ let (intro_exists : (Prims.of_int (16)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - pst_sub1.Pulse_Checker_Prover_Base.k)) + (Obj.magic + uu___16) (fun - uu___3 -> + uu___17 + -> (fun k_sub1 -> + let uu___17 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (185)) - (Prims.of_int (4)) - (Prims.of_int (185)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (185)) - (Prims.of_int (53)) - (Prims.of_int (354)) - (Prims.of_int (6))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___18 + -> Pulse_Checker_Base.k_elab_equiv preamble_sub.Pulse_Checker_Prover_Base.g0 pst_sub1.Pulse_Checker_Prover_Base.pg @@ -945,11 +1046,41 @@ let (intro_exists : pst_sub1.Pulse_Checker_Prover_Base.ss preamble_sub.Pulse_Checker_Prover_Base.goals)) k_sub1 () - ())) + ())) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (185)) + (Prims.of_int (4)) + (Prims.of_int (185)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (185)) + (Prims.of_int (53)) + (Prims.of_int (354)) + (Prims.of_int (6))))) + (Obj.magic + uu___17) (fun - uu___3 -> + uu___18 + -> (fun k_sub2 -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + coerce_eq + k_sub2 ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -968,15 +1099,24 @@ let (intro_exists : (Prims.of_int (85)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - coerce_eq - k_sub2 ())) + (Obj.magic + uu___18) (fun - uu___3 -> + uu___19 + -> (fun k_sub3 -> + let uu___19 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + Pulse_Checker_Prover_Base.op_Array_Access + pst_sub1.Pulse_Checker_Prover_Base.ss + (Pulse_Syntax_Pure.null_var + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -995,18 +1135,23 @@ let (intro_exists : (Prims.of_int (97)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Checker_Prover_Base.op_Array_Access - pst_sub1.Pulse_Checker_Prover_Base.ss - (Pulse_Syntax_Pure.null_var - x))) + (Obj.magic + uu___19) (fun - uu___3 -> + uu___20 + -> (fun witness -> + let uu___20 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + coerce_eq + k_sub3 ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1025,36 +1170,20 @@ let (intro_exists : (Prims.of_int (25)) (Prims.of_int (354)) (Prims.of_int (6))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - coerce_eq - k_sub3 ())) + (Obj.magic + uu___20) (fun - uu___3 -> + uu___21 + -> (fun k_sub4 -> + let uu___21 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (212)) - (Prims.of_int (4)) - (Prims.of_int (212)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (212)) - (Prims.of_int (53)) - (Prims.of_int (354)) - (Prims.of_int (6))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___22 + -> Pulse_Checker_Base.k_elab_equiv preamble_sub.Pulse_Checker_Prover_Base.g0 pst_sub1.Pulse_Checker_Prover_Base.pg @@ -1101,31 +1230,35 @@ let (intro_exists : (Prims.int_zero, witness)])) k_sub4 () - ())) - (fun - uu___3 -> - (fun - k_sub5 -> + ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (222)) + (Prims.of_int (212)) (Prims.of_int (4)) - (Prims.of_int (231)) - (Prims.of_int (19))))) + (Prims.of_int (212)) + (Prims.of_int (50))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroExists.fst" - (Prims.of_int (339)) - (Prims.of_int (4)) - (Prims.of_int (351)) - (Prims.of_int (46))))) + (Prims.of_int (212)) + (Prims.of_int (53)) + (Prims.of_int (354)) + (Prims.of_int (6))))) (Obj.magic - (k_intro_exists + uu___21) + (fun + uu___22 + -> + (fun + k_sub5 -> + let uu___22 + = + k_intro_exists pst_sub1.Pulse_Checker_Prover_Base.pg u (Pulse_Checker_Prover_Substs.nt_subst_binder @@ -1144,13 +1277,34 @@ let (intro_exists : pst_sub1.Pulse_Checker_Prover_Base.ss (Pulse_Syntax_Pure.list_as_slprop unsolved'))) - ())) + () in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (222)) + (Prims.of_int (4)) + (Prims.of_int (231)) + (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroExists.fst" + (Prims.of_int (339)) + (Prims.of_int (4)) + (Prims.of_int (351)) + (Prims.of_int (46))))) + (Obj.magic + uu___22) (fun k_intro_exists1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___23 + -> { Pulse_Checker_Prover_Base.pg = @@ -1451,20 +1605,20 @@ let (intro_exists : = (pst_sub1.Pulse_Checker_Prover_Base.allow_ambiguous) })))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___1))) uu___1) \ No newline at end of file + uu___22))) + uu___21))) + uu___20))) + uu___19))) + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___14))) + uu___12))) + uu___10))) + uu___9))) + uu___8))) + uu___7))) + uu___6))) + uu___5))) uu___4))) + uu___3))) uu___2) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroPure.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroPure.ml index 2e5e75843..15d9cf7f1 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroPure.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_IntroPure.ml @@ -16,6 +16,15 @@ let (k_intro_pure : fun d -> fun token -> fun frame -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_IntroPure + { Pulse_Syntax_Base.p3 = p }))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -29,15 +38,13 @@ let (k_intro_pure : "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (42)) (Prims.of_int (53)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_IntroPure - { Pulse_Syntax_Base.p3 = p }))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun t -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> Pulse_Typing.comp_intro_pure p)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -52,10 +59,15 @@ let (k_intro_pure : "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (43)) (Prims.of_int (30)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.comp_intro_pure p)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun c -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing.T_IntroPure + (g, p, (), ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -74,12 +86,14 @@ let (k_intro_pure : (Prims.of_int (54)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing.T_IntroPure - (g, p, (), ()))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun d1 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing_Env.fresh g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -98,11 +112,15 @@ let (k_intro_pure : (Prims.of_int (30)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh g)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun x -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Syntax_Base.mk_ppname_no_range + "_pintrop")) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -121,12 +139,15 @@ let (k_intro_pure : (Prims.of_int (47)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Base.mk_ppname_no_range - "_pintrop")) - (fun uu___ -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ppname -> + let uu___5 = + Pulse_Checker_Base.continuation_elaborator_with_bind + g frame c + t d1 () + (ppname, + x) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -146,19 +167,22 @@ let (k_intro_pure : (Prims.of_int (76)) (Prims.of_int (30))))) (Obj.magic - (Pulse_Checker_Base.continuation_elaborator_with_bind - g frame c - t d1 () - (ppname, - x))) + uu___5) (fun k -> FStar_Tactics_Effect.lift_div_tac (fun - uu___ -> + uu___6 -> fun post_hint -> fun r -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + r)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -176,20 +200,25 @@ let (k_intro_pure : (Prims.of_int (20)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - r)) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple3 (t1, c1, d11) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> d11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -208,14 +237,23 @@ let (k_intro_pure : (Prims.of_int (36)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - d11)) + (Obj.magic + uu___9) (fun - uu___2 -> + uu___10 + -> (fun d12 -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Env.mk_env + (Pulse_Typing_Env.fstar_env + g))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -234,17 +272,29 @@ let (k_intro_pure : (Prims.of_int (59)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Env.mk_env - (Pulse_Typing_Env.fstar_env - g))) + (Obj.magic + uu___10) (fun - uu___2 -> + uu___11 + -> (fun empty_env -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Typing_Metatheory.st_typing_weakening + g + empty_env + t1 c1 d12 + (Pulse_Typing_Env.push_binding + g x + Pulse_Syntax_Base.ppname_default + Pulse_Typing.tm_unit))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -263,19 +313,11 @@ let (k_intro_pure : (Prims.of_int (2)) (Prims.of_int (76)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Metatheory.st_typing_weakening - g - empty_env - t1 c1 d12 - (Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - Pulse_Typing.tm_unit))) + (Obj.magic + uu___11) (fun - uu___2 -> + uu___12 + -> (fun d13 -> Obj.magic @@ -301,12 +343,13 @@ let (k_intro_pure : (FStar_Pervasives.Mkdtuple3 (t1, c1, d13)))) - uu___2))) - uu___2))) - uu___2))) - uu___1))))) - uu___))) uu___))) - uu___))) uu___))) uu___) + uu___12))) + uu___11))) + uu___10))) + uu___8))))) + uu___5))) + uu___4))) uu___3))) + uu___2))) uu___1) type pure_uv_heuristic_t = Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -365,6 +408,27 @@ let (is_host_var : let (is_uvar_implication : pure_uv_heuristic_t) = fun uvs -> fun t -> + let uu___ = + Pulse_Checker_Base.debug uvs + (fun uu___1 -> + let uu___2 = Pulse_Syntax_Printer.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (127)) (Prims.of_int (69)) + (Prims.of_int (127)) (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat "is_uvar_implication??: " + (Prims.strcat uu___3 "\n")))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -375,35 +439,18 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (128)) (Prims.of_int (4)) (Prims.of_int (169)) - (Prims.of_int (15))))) - (Obj.magic - (Pulse_Checker_Base.debug uvs - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (127)) (Prims.of_int (69)) - (Prims.of_int (127)) (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (Pulse_Syntax_Printer.term_to_string t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "is_uvar_implication??: " - (Prims.strcat uu___1 "\n")))))) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (15))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> match Pulse_Syntax_Pure.inspect_term t with - | Pulse_Syntax_Pure.Tm_FStar uu___1 -> + | Pulse_Syntax_Pure.Tm_FStar uu___2 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -416,10 +463,12 @@ let (is_uvar_implication : pure_uv_heuristic_t) = "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (130)) (Prims.of_int (19)) (Prims.of_int (167)) (Prims.of_int (17))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> t)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun tt -> + let uu___4 = + FStar_Reflection_V2_Formula.term_as_formula' + tt in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -438,17 +487,52 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Prims.of_int (6)) (Prims.of_int (167)) (Prims.of_int (17))))) - (Obj.magic - (FStar_Reflection_V2_Formula.term_as_formula' - tt)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun f -> match f with | FStar_Reflection_V2_Formula.Implies (t0, t1) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + Pulse_Checker_Base.debug + uvs + (fun uu___6 -> + let uu___7 = + FStar_Tactics_V2_Builtins.term_to_string + t0 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (134)) + (Prims.of_int (77)) + (Prims.of_int (134)) + (Prims.of_int (98))))) + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic + uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Prims.strcat + "is_uvar_implication, LHS=: " + (Prims.strcat + uu___8 + "\n")))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -465,42 +549,9 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Prims.of_int (8)) (Prims.of_int (165)) (Prims.of_int (11))))) - (Obj.magic - (Pulse_Checker_Base.debug - uvs - (fun uu___2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (134)) - (Prims.of_int (77)) - (Prims.of_int (134)) - (Prims.of_int (98))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - t0)) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - "is_uvar_implication, LHS=: " - (Prims.strcat - uu___3 - "\n")))))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> match FStar_Reflection_V2_Builtins.inspect_ln t0 with @@ -510,12 +561,21 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___7 -> FStar_Pervasives_Native.None))) - | uu___3 -> + | uu___7 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Syntax_Pure.wr + t0 + FStar_Range.range_0)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -532,14 +592,10 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Prims.of_int (10)) (Prims.of_int (164)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Pure.wr - t0 - FStar_Range.range_0)) + (Obj.magic + uu___8) (fun - uu___4 -> + uu___9 -> (fun t01 -> match @@ -553,7 +609,7 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> FStar_Pervasives_Native.None))) | FStar_Pervasives_Native.Some @@ -573,32 +629,22 @@ let (is_uvar_implication : pure_uv_heuristic_t) = FStar_Range.range_0) then Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (146)) - (Prims.of_int (16)) - (Prims.of_int (158)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (160)) - (Prims.of_int (14)) - (Prims.of_int (162)) - (Prims.of_int (22))))) + (let uu___9 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___12 + -> fun - uu___5 -> + uu___11 + -> fun - uu___4 -> + uu___10 + -> (fun - uu___4 -> + uu___10 + -> fun maybe_var -> @@ -608,7 +654,8 @@ let (is_uvar_implication : pure_uv_heuristic_t) = Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___11 + -> match Pulse_Syntax_Pure.is_var lhs @@ -632,7 +679,8 @@ let (is_uvar_implication : pure_uv_heuristic_t) = with | Pulse_Syntax_Pure.Tm_FStar - uu___6 -> + uu___12 + -> FStar_Pervasives_Native.Some (Prims.Mkdtuple2 ((nm.Pulse_Syntax_Base.nm_index), @@ -648,18 +696,43 @@ let (is_uvar_implication : pure_uv_heuristic_t) = FStar_Reflection_V2_Data.Q_Explicit)))) FStar_Range.range_0))) | - uu___6 -> + uu___12 + -> FStar_Pervasives_Native.None) else FStar_Pervasives_Native.None))) - uu___6 - uu___5 - uu___4)) + uu___12 + uu___11 + uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (146)) + (Prims.of_int (16)) + (Prims.of_int (158)) + (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (160)) + (Prims.of_int (14)) + (Prims.of_int (162)) + (Prims.of_int (22))))) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun try_negated -> + let uu___10 + = + try_negated + lhs rhs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -679,13 +752,14 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Prims.of_int (162)) (Prims.of_int (22))))) (Obj.magic - (try_negated - lhs rhs)) + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> - match uu___4 + uu___11 + -> + match uu___11 with | FStar_Pervasives_Native.None @@ -700,31 +774,32 @@ let (is_uvar_implication : pure_uv_heuristic_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - x)))) - uu___4))) - uu___4)) + uu___12 + -> x)))) + uu___11))) + uu___10)) else Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___10 + -> FStar_Pervasives_Native.None))))) - uu___4)))) - uu___2))) - | uu___2 -> + uu___9)))) + uu___6))) + | uu___5 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___6 -> FStar_Pervasives_Native.None)))) - uu___2))) uu___2))) - | uu___1 -> + uu___5))) uu___4))) + | uu___2 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> FStar_Pervasives_Native.None)))) - uu___) + (fun uu___3 -> FStar_Pervasives_Native.None)))) + uu___1) let (pure_uvar_heursitics : pure_uv_heuristic_t) = let h = [is_eq2_uvar; is_uvar_implication] in fun uvs -> @@ -740,7 +815,8 @@ let (pure_uvar_heursitics : pure_uv_heuristic_t) = | h2::hs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = h2 uvs t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -753,10 +829,10 @@ let (pure_uvar_heursitics : pure_uv_heuristic_t) = "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (179)) (Prims.of_int (10)) (Prims.of_int (181)) (Prims.of_int (48))))) - (Obj.magic (h2 uvs t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr (loop hs)) | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 @@ -764,10 +840,10 @@ let (pure_uvar_heursitics : pure_uv_heuristic_t) = Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> FStar_Pervasives_Native.Some (Prims.Mkdtuple2 (uv, e)))))) - uu___)))) uu___ in + uu___1)))) uu___ in loop h let rec (try_collect_substs : Pulse_Typing_Env.env -> @@ -782,7 +858,10 @@ let rec (try_collect_substs : | Pulse_Syntax_Pure.Tm_FStar uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -795,9 +874,12 @@ let rec (try_collect_substs : "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (189)) (Prims.of_int (17)) (Prims.of_int (209)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> t)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun rt -> + let uu___2 = + FStar_Reflection_V2_Formula.term_as_formula' + rt in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -816,14 +898,16 @@ let rec (try_collect_substs : (Prims.of_int (6)) (Prims.of_int (208)) (Prims.of_int (26))))) - (Obj.magic - (FStar_Reflection_V2_Formula.term_as_formula' - rt)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun f -> match f with | FStar_Reflection_V2_Formula.And (rt0, rt1) -> + let uu___3 = + try_collect_substs uvs + (Pulse_Syntax_Pure.wr rt0 + FStar_Range.range_0) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -842,13 +926,15 @@ let rec (try_collect_substs : (Prims.of_int (72)) (Prims.of_int (200)) (Prims.of_int (21))))) - (Obj.magic - (try_collect_substs uvs - (Pulse_Syntax_Pure.wr - rt0 - FStar_Range.range_0))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun ss0 -> + let uu___4 = + try_collect_substs + uvs + (Pulse_Syntax_Pure.wr + rt1 + FStar_Range.range_0) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -867,15 +953,10 @@ let rec (try_collect_substs : (Prims.of_int (8)) (Prims.of_int (200)) (Prims.of_int (21))))) - (Obj.magic - (try_collect_substs - uvs - (Pulse_Syntax_Pure.wr - rt1 - FStar_Range.range_0))) + (Obj.magic uu___4) (fun ss1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 + (fun uu___5 -> if Pulse_Checker_Prover_Substs.check_disjoint @@ -885,8 +966,10 @@ let rec (try_collect_substs : ss0 ss1 else Pulse_Checker_Prover_Substs.empty)))) - uu___1)) - | uu___1 -> + uu___4)) + | uu___3 -> + let uu___4 = + pure_uvar_heursitics uvs t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -905,13 +988,11 @@ let rec (try_collect_substs : (Prims.of_int (8)) (Prims.of_int (208)) (Prims.of_int (26))))) - (Obj.magic - (pure_uvar_heursitics uvs - t)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with + (fun uu___6 -> + match uu___5 with | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 (uv, e)) -> @@ -921,7 +1002,7 @@ let rec (try_collect_substs : | FStar_Pervasives_Native.None -> Pulse_Checker_Prover_Substs.empty)))) - uu___1))) uu___1))) + uu___3))) uu___2))) | uu___ -> Obj.magic (Obj.repr @@ -943,6 +1024,12 @@ let (intro_pure : fun t -> fun unsolved' -> fun uu___ -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss t)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -956,12 +1043,89 @@ let (intro_pure : "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (221)) (Prims.of_int (2)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss t)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun t_ss -> + let uu___2 = + Pulse_Checker_Prover_Util.debug_prover + pst.Pulse_Checker_Prover_Base.pg + (fun uu___3 -> + let uu___4 = + Pulse_Typing_Env.env_to_string + pst.Pulse_Checker_Prover_Base.uvs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (224)) (Prims.of_int (6)) + (Prims.of_int (224)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (222)) (Prims.of_int (4)) + (Prims.of_int (224)) + (Prims.of_int (29))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + Pulse_Syntax_Printer.term_to_string + t_ss in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (223)) + (Prims.of_int (6)) + (Prims.of_int (223)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + Prims.strcat + (Prims.strcat + "Intro pure trying to typecheck prop: " + (Prims.strcat uu___8 + " with uvs: ")) + (Prims.strcat x "\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (222)) + (Prims.of_int (4)) + (Prims.of_int (224)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (222)) + (Prims.of_int (4)) + (Prims.of_int (224)) + (Prims.of_int (29))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 uu___5)))) + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -976,91 +1140,12 @@ let (intro_pure : "Pulse.Checker.Prover.IntroPure.fst" (Prims.of_int (224)) (Prims.of_int (31)) (Prims.of_int (360)) (Prims.of_int (14))))) - (Obj.magic - (Pulse_Checker_Prover_Util.debug_prover - pst.Pulse_Checker_Prover_Base.pg - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (224)) - (Prims.of_int (6)) - (Prims.of_int (224)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (222)) - (Prims.of_int (4)) - (Prims.of_int (224)) - (Prims.of_int (29))))) - (Obj.magic - (Pulse_Typing_Env.env_to_string - pst.Pulse_Checker_Prover_Base.uvs)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (222)) - (Prims.of_int (4)) - (Prims.of_int (224)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (222)) - (Prims.of_int (4)) - (Prims.of_int (224)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (223)) - (Prims.of_int (6)) - (Prims.of_int (223)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t_ss)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "Intro pure trying to typecheck prop: " - ( - Prims.strcat - uu___3 - " with uvs: ")) - (Prims.strcat - x "\n"))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2)))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + try_collect_substs + pst.Pulse_Checker_Prover_Base.uvs t_ss in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1079,12 +1164,16 @@ let (intro_pure : (Prims.of_int (51)) (Prims.of_int (360)) (Prims.of_int (14))))) - (Obj.magic - (try_collect_substs - pst.Pulse_Checker_Prover_Base.uvs - t_ss)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ss' -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Checker_Prover_Substs.push_ss + pst.Pulse_Checker_Prover_Base.ss + ss')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1103,13 +1192,15 @@ let (intro_pure : (Prims.of_int (38)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Checker_Prover_Substs.push_ss - pst.Pulse_Checker_Prover_Base.ss - ss')) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun ss_new -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Pulse_Checker_Prover_Base.op_Array_Access + ss_new t)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1128,33 +1219,21 @@ let (intro_pure : (Prims.of_int (26)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Checker_Prover_Base.op_Array_Access - ss_new t)) - (fun uu___2 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun t_ss1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (233)) - (Prims.of_int (9)) - (Prims.of_int (240)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (241)) - (Prims.of_int (4)) - (Prims.of_int (360)) - (Prims.of_int (14))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___7 = + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Syntax_Naming.freevars + t_ss1)) in + FStar_Tactics_Effect.tac_bind + ( + FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" @@ -1162,7 +1241,8 @@ let (intro_pure : (Prims.of_int (14)) (Prims.of_int (234)) (Prims.of_int (27))))) - (FStar_Sealed.seal + ( + FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" @@ -1170,13 +1250,12 @@ let (intro_pure : (Prims.of_int (4)) (Prims.of_int (240)) (Prims.of_int (31))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Syntax_Naming.freevars - t_ss1)) - (fun - uu___2 -> + ( + Obj.magic + uu___8) + ( + fun + uu___9 -> (fun fvs -> if @@ -1188,30 +1267,53 @@ let (intro_pure : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> ()))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + let uu___11 + = + let uu___12 + = + Pulse_PP.pp + Pulse_PP.printable_term + t_ss1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (239)) - (Prims.of_int (8)) (Prims.of_int (240)) - (Prims.of_int (31))))) + (Prims.of_int (20)) + (Prims.of_int (240)) + (Prims.of_int (29))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) + (Prims.of_int (239)) + (Prims.of_int (9)) (Prims.of_int (240)) - (Prims.of_int (31))))) + (Prims.of_int (29))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Could not resolve all free variables in the proposition:") + uu___13)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1229,61 +1331,79 @@ let (intro_pure : (Prims.of_int (240)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + [uu___12])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (239)) + (Prims.of_int (8)) (Prims.of_int (240)) - (Prims.of_int (20)) - (Prims.of_int (240)) - (Prims.of_int (29))))) + (Prims.of_int (31))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (239)) - (Prims.of_int (9)) + (Prims.of_int (238)) + (Prims.of_int (6)) (Prims.of_int (240)) - (Prims.of_int (29))))) + (Prims.of_int (31))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t_ss1)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Could not resolve all free variables in the proposition:") - uu___3)))) + uu___10) (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - [uu___3])))) - (fun - uu___3 -> + uu___11 + -> (fun - uu___3 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail_doc pst.Pulse_Checker_Prover_Base.pg (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term t_ss1)) - uu___3)) - uu___3)))) - uu___2))) + uu___11)) + uu___11)))) + uu___9) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (233)) + (Prims.of_int (9)) + (Prims.of_int (240)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (241)) + (Prims.of_int (4)) + (Prims.of_int (360)) + (Prims.of_int (14))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> + let uu___9 + = + Pulse_Checker_Pure.core_check_tot_term + pst.Pulse_Checker_Prover_Base.pg + t_ss1 + Pulse_Typing.tm_prop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1303,13 +1423,21 @@ let (intro_pure : (Prims.of_int (360)) (Prims.of_int (14))))) (Obj.magic - (Pulse_Checker_Pure.core_check_tot_term - pst.Pulse_Checker_Prover_Base.pg - t_ss1 - Pulse_Typing.tm_prop)) + uu___9) (fun - uu___3 -> + uu___10 + -> (fun d -> + let uu___10 + = + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + (fun + uu___11 + -> + Pulse_Checker_Pure.check_prop_validity + pst.Pulse_Checker_Prover_Base.pg + t_ss1 ()) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1329,18 +1457,24 @@ let (intro_pure : (Prims.of_int (360)) (Prims.of_int (14))))) (Obj.magic - (FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun - uu___3 -> - Pulse_Checker_Pure.check_prop_validity - pst.Pulse_Checker_Prover_Base.pg - t_ss1 ()))) + uu___10) (fun - uu___3 -> + uu___11 + -> (fun d_valid -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env + pst.Pulse_Checker_Prover_Base.pg + pst.Pulse_Checker_Prover_Base.uvs))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1359,16 +1493,23 @@ let (intro_pure : (Prims.of_int (44)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env - pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs))) + (Obj.magic + uu___11) (fun - uu___3 -> + uu___12 + -> (fun x -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Checker_Prover_Base.op_Star + (Pulse_Syntax_Pure.tm_pure + t) + pst.Pulse_Checker_Prover_Base.solved)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1387,18 +1528,22 @@ let (intro_pure : (Prims.of_int (46)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Checker_Prover_Base.op_Star - (Pulse_Syntax_Pure.tm_pure - t) - pst.Pulse_Checker_Prover_Base.solved)) + (Obj.magic + uu___12) (fun - uu___3 -> + uu___13 + -> (fun solved_new -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + unsolved')) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1417,35 +1562,32 @@ let (intro_pure : (Prims.of_int (33)) (Prims.of_int (360)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - unsolved')) + (Obj.magic + uu___13) (fun - uu___3 -> + uu___14 + -> (fun unsolved_new -> + let uu___14 + = + let uu___15 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (283)) - (Prims.of_int (97)) - (Prims.of_int (317)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.IntroPure.fst" - (Prims.of_int (360)) - (Prims.of_int (2)) - (Prims.of_int (360)) - (Prims.of_int (14))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + Pulse_Checker_Prover_Base.op_Star + (Pulse_Checker_Prover_Base.op_Star + (Pulse_Syntax_Pure.list_as_slprop + pst.Pulse_Checker_Prover_Base.remaining_ctxt) + preamble.Pulse_Checker_Prover_Base.frame) + (Pulse_Checker_Prover_Base.op_Array_Access + ss_new + pst.Pulse_Checker_Prover_Base.solved))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1462,21 +1604,19 @@ let (intro_pure : (Prims.of_int (93)) (Prims.of_int (317)) (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Checker_Prover_Base.op_Star - (Pulse_Checker_Prover_Base.op_Star - (Pulse_Syntax_Pure.list_as_slprop - pst.Pulse_Checker_Prover_Base.remaining_ctxt) - preamble.Pulse_Checker_Prover_Base.frame) - (Pulse_Checker_Prover_Base.op_Array_Access - ss_new - pst.Pulse_Checker_Prover_Base.solved))) + (Obj.magic + uu___15) (fun - uu___3 -> + uu___16 + -> (fun frame -> + let uu___16 + = + k_intro_pure + pst.Pulse_Checker_Prover_Base.pg + t_ss1 () + () frame in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1496,15 +1636,13 @@ let (intro_pure : (Prims.of_int (317)) (Prims.of_int (29))))) (Obj.magic - (k_intro_pure - pst.Pulse_Checker_Prover_Base.pg - t_ss1 () - () frame)) + uu___16) (fun k_pure -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___17 + -> Pulse_Checker_Base.k_elab_trans preamble.Pulse_Checker_Prover_Base.g0 pst.Pulse_Checker_Prover_Base.pg @@ -1553,11 +1691,32 @@ let (intro_pure : pst.Pulse_Checker_Prover_Base.solved))) k_pure () ()))))) - uu___3))) + uu___16) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (283)) + (Prims.of_int (97)) + (Prims.of_int (317)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.IntroPure.fst" + (Prims.of_int (360)) + (Prims.of_int (2)) + (Prims.of_int (360)) + (Prims.of_int (14))))) + (Obj.magic + uu___14) (fun k -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___15 + -> FStar_Pervasives_Native.Some { Pulse_Checker_Prover_Base.pg @@ -1595,12 +1754,12 @@ let (intro_pure : = (pst.Pulse_Checker_Prover_Base.allow_ambiguous) })))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___3))) - uu___2))) - uu___2))) - uu___2))) uu___2))) - uu___1))) uu___1) \ No newline at end of file + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10))) + uu___8))) + uu___7))) + uu___6))) uu___5))) + uu___3))) uu___2) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Comb.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Comb.ml index c6acbd148..f2de6b3a8 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Comb.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Comb.ml @@ -18,6 +18,20 @@ let (wrap_matcher : fun pst -> fun p -> fun q -> + let uu___ = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) "prover.match" + then + Obj.magic + (Obj.repr + (FStar_Tactics_V1_Builtins.print + (Prims.strcat "Trying matcher " label))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> ()))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -31,26 +45,15 @@ let (wrap_matcher : "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (49)) (Prims.of_int (2)) (Prims.of_int (56)) (Prims.of_int (16))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) "prover.match" - then - Obj.magic - (Obj.repr - (FStar_Tactics_V1_Builtins.print - (Prims.strcat "Trying matcher " label))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> Obj.magic (FStar_Tactics_V2_Derived.try_with - (fun uu___1 -> + (fun uu___2 -> match () with | () -> + let uu___3 = matcher preamble pst p q in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -68,20 +71,37 @@ let (wrap_matcher : (Prims.of_int (4)) (Prims.of_int (50)) (Prims.of_int (26))))) - (Obj.magic (matcher preamble pst p q)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___5 -> FStar_Pervasives_Native.Some - uu___2))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + uu___4))) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Checker_Prover_Match_Base.NoMatch s -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) + "prover.match" + then + Obj.magic + (Obj.repr + (FStar_Tactics_V1_Builtins.print + (Prims.strcat + "NoMatch: " s))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> ()))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -98,31 +118,16 @@ let (wrap_matcher : (Prims.of_int (4)) (Prims.of_int (55)) (Prims.of_int (8))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) - "prover.match" - then - Obj.magic - (Obj.repr - (FStar_Tactics_V1_Builtins.print - (Prims.strcat - "NoMatch: " s))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> ())))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___5 -> FStar_Pervasives_Native.None)))) | e -> Obj.magic (Obj.repr (FStar_Tactics_Effect.raise e))) - uu___1))) uu___) + uu___2))) uu___1) let rec (match_f_1n : Prims.string -> Pulse_Checker_Prover_Match_Base.matcher_t -> @@ -158,187 +163,165 @@ let rec (match_f_1n : | p::ps -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (75)) - (Prims.of_int (4)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (81)) - (Prims.of_int (4)) - (Prims.of_int (120)) - (Prims.of_int (5))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) - "prover.match" - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (22)) - (Prims.of_int (76)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (6)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (31)) - (Prims.of_int (76)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (22)) - (Prims.of_int (76)) - (Prims.of_int (51))))) - (Obj.magic - (Pulse_Typing_Env.range_of_env - pst.Pulse_Checker_Prover_Base.pg)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pervasives_Native.Some - uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (52)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (6)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (let uu___ = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) + "prover.match" + then + Obj.magic + (Obj.repr + (let uu___1 = + let uu___2 = + Pulse_Typing_Env.range_of_env + pst.Pulse_Checker_Prover_Base.pg in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (31)) + (Prims.of_int (76)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (22)) + (Prims.of_int (76)) + (Prims.of_int (51))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pervasives_Native.Some + uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (22)) + (Prims.of_int (76)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (6)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (52)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (78)) + (Prims.of_int (41)) + (Prims.of_int (78)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (52)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Prims.of_int (78)) + (Prims.of_int (8)) + (Prims.of_int (78)) + (Prims.of_int (47))))) + (Obj.magic + uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___8 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.doc_of_string + "p =") + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (78)) (Prims.of_int (8)) (Prims.of_int (78)) (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (76)) (Prims.of_int (52)) (Prims.of_int (80)) (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___5) + (fun uu___6 -> + (fun uu___6 + -> + let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_PP.pp + Pulse_PP.printable_term + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + q) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (78)) + (Prims.of_int (79)) (Prims.of_int (41)) - (Prims.of_int (78)) - (Prims.of_int (47))))) + (Prims.of_int (79)) + (Prims.of_int (56))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (78)) + (Prims.of_int (79)) (Prims.of_int (8)) - (Prims.of_int (78)) - (Prims.of_int (47))))) + (Prims.of_int (79)) + (Prims.of_int (56))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___9) (fun - uu___1 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___11 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (FStar_Pprint.doc_of_string - "p =") - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (52)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (76)) - (Prims.of_int (52)) - (Prims.of_int (80)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "q =") + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -356,79 +339,127 @@ let rec (match_f_1n : (Prims.of_int (80)) (Prims.of_int (7))))) (Obj.magic + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + [uu___9])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (79)) - (Prims.of_int (41)) - (Prims.of_int (79)) - (Prims.of_int (56))))) + (Prims.of_int (76)) + (Prims.of_int (52)) + (Prims.of_int (80)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (79)) - (Prims.of_int (8)) - (Prims.of_int (79)) - (Prims.of_int (56))))) + (Prims.of_int (76)) + (Prims.of_int (52)) + (Prims.of_int (80)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - q))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.doc_of_string - "q =") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - [uu___2])))) + uu___7) (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - uu___1 :: - uu___2)))) - uu___1))) - (fun - uu___1 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - (Pulse_PP.text - "Trying to match") - :: uu___1)))) - (fun uu___1 -> - (fun uu___1 + uu___9 -> + uu___6 :: + uu___8)))) + uu___6) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (52)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (52)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> - Obj.magic - (Pulse_Typing_Env.info_doc + (Pulse_PP.text + "Trying to match") + :: uu___5)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (52)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (76)) + (Prims.of_int (6)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + Obj.magic + ( + Pulse_Typing_Env.info_doc pst.Pulse_Checker_Prover_Base.pg - uu___ - uu___1)) - uu___1))) - uu___))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) - (fun uu___ -> - (fun uu___ -> + uu___2 + uu___4)) + uu___4))) + uu___2))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (75)) + (Prims.of_int (4)) + (Prims.of_int (80)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (81)) + (Prims.of_int (4)) + (Prims.of_int (120)) + (Prims.of_int (5))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + wrap_matcher label matcher + preamble pst p + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + q) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -447,50 +478,44 @@ let rec (match_f_1n : (Prims.of_int (4)) (Prims.of_int (120)) (Prims.of_int (5))))) - (Obj.magic - (wrap_matcher label - matcher preamble pst - p - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - q))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 (ss_extension, pq)) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( + let uu___4 = + if + Prims.op_Negation + pst.Pulse_Checker_Prover_Base.allow_ambiguous + then + Obj.magic + (Obj.repr + (let uu___5 + = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) + "prover.match" + then + Obj.magic + (Obj.repr + (FStar_Tactics_V1_Builtins.print + "Checking for ambiguity")) + else Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (84)) - (Prims.of_int (6)) - (Prims.of_int (92)) - (Prims.of_int (9))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (93)) - (Prims.of_int (66)) - (Prims.of_int (108)) - (Prims.of_int (60))))) - (if - Prims.op_Negation - pst.Pulse_Checker_Prover_Base.allow_ambiguous - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (85)) @@ -505,27 +530,19 @@ let rec (match_f_1n : (Prims.of_int (8)) (Prims.of_int (91)) (Prims.of_int (20))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) - "prover.match" - then - Obj.magic - (Obj.repr - (FStar_Tactics_V1_Builtins.print - "Checking for ambiguity")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())))) + (Obj.magic + uu___5) (fun - uu___2 -> + uu___6 -> (fun - uu___2 -> + uu___6 -> + let uu___7 + = + match_f_1n + label + matcher + preamble + pst q ps in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -545,23 +562,19 @@ let rec (match_f_1n : (Prims.of_int (91)) (Prims.of_int (20))))) (Obj.magic - (match_f_1n - label - matcher - preamble - pst q ps)) + uu___7) (fun - uu___3 -> - match uu___3 + uu___8 -> + match uu___8 with | FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple5 (p', - uu___4, - uu___5, - uu___6, - uu___7)) + uu___9, + uu___10, + uu___11, + uu___12)) -> if Prims.op_Negation @@ -575,74 +588,85 @@ let rec (match_f_1n : else FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - ()) + uu___14 + -> ()) | FStar_Pervasives_Native.None -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> ())))) - uu___2))) - else - Obj.magic - (Obj.repr + uu___6))) + else + Obj.magic + (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - ())))) - (fun uu___2 - -> - (fun - uu___2 -> + uu___6 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (94)) - (Prims.of_int (16)) - (Prims.of_int (94)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (84)) + (Prims.of_int (6)) + (Prims.of_int (92)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (95)) - (Prims.of_int (6)) + (Prims.of_int (93)) + (Prims.of_int (66)) (Prims.of_int (108)) (Prims.of_int (60))))) + (Obj.magic + uu___4) + (fun uu___5 + -> + (fun + uu___5 -> + let uu___6 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___7 -> Pulse_Checker_Prover_Substs.push_ss pst.Pulse_Checker_Prover_Base.ss - ss_extension)) - (fun - uu___3 -> - (fun ss' - -> + ss_extension)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (95)) - (Prims.of_int (6)) - (Prims.of_int (102)) - (Prims.of_int (9))))) + (Prims.of_int (94)) + (Prims.of_int (16)) + (Prims.of_int (94)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (108)) + (Prims.of_int (95)) (Prims.of_int (6)) (Prims.of_int (108)) (Prims.of_int (60))))) - (if + (Obj.magic + uu___6) + (fun + uu___7 -> + (fun ss' + -> + let uu___7 + = + if Pulse_RuntimeUtils.debug_at_level (Pulse_Typing_Env.fstar_env pst.Pulse_Checker_Prover_Base.pg) @@ -650,25 +674,13 @@ let rec (match_f_1n : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (24)) - (Prims.of_int (96)) - (Prims.of_int (53))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (8)) - (Prims.of_int (102)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + Pulse_Typing_Env.range_of_env + pst.Pulse_Checker_Prover_Base.pg in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -686,29 +698,25 @@ let rec (match_f_1n : (Prims.of_int (96)) (Prims.of_int (53))))) (Obj.magic - (Pulse_Typing_Env.range_of_env - pst.Pulse_Checker_Prover_Base.pg)) + uu___9) (fun - uu___3 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___11 + -> FStar_Pervasives_Native.Some - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) + (Prims.of_int (24)) + (Prims.of_int (96)) + (Prims.of_int (53))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -718,25 +726,55 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + (fun + uu___9 -> + let uu___10 + = + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) + (Prims.of_int (98)) + (Prims.of_int (43)) + (Prims.of_int (98)) + (Prims.of_int (49))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) + (Prims.of_int (98)) + (Prims.of_int (10)) + (Prims.of_int (98)) + (Prims.of_int (49))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.doc_of_string + "p =") + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -754,62 +792,57 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + (fun + uu___13 + -> + let uu___14 + = + let uu___15 + = + let uu___16 + = + Pulse_PP.pp + Pulse_PP.printable_term + (Pulse_Checker_Prover_Base.op_Array_Access + pst.Pulse_Checker_Prover_Base.ss + q) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (98)) + (Prims.of_int (99)) (Prims.of_int (43)) - (Prims.of_int (98)) - (Prims.of_int (49))))) + (Prims.of_int (99)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (98)) + (Prims.of_int (99)) (Prims.of_int (10)) - (Prims.of_int (98)) - (Prims.of_int (49))))) + (Prims.of_int (99)) + (Prims.of_int (58))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___16) (fun - uu___4 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___18 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (FStar_Pprint.doc_of_string - "p =") - uu___4)))) - (fun - uu___4 -> - (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "q =") + uu___17)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -827,64 +860,55 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + (fun + uu___16 + -> + let uu___17 + = + let uu___18 + = + let uu___19 + = + Pulse_PP.pp + Pulse_Checker_Prover_Substs.pp_ss_t + ss' in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (99)) - (Prims.of_int (43)) - (Prims.of_int (99)) - (Prims.of_int (58))))) + (Prims.of_int (100)) + (Prims.of_int (45)) + (Prims.of_int (100)) + (Prims.of_int (53))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (99)) + (Prims.of_int (100)) (Prims.of_int (10)) - (Prims.of_int (99)) - (Prims.of_int (58))))) + (Prims.of_int (100)) + (Prims.of_int (53))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - (Pulse_Checker_Prover_Base.op_Array_Access - pst.Pulse_Checker_Prover_Base.ss - q))) + uu___19) (fun - uu___5 -> + uu___20 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___21 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (FStar_Pprint.doc_of_string - "q =") - uu___5)))) - (fun - uu___5 -> - (fun - uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (96)) - (Prims.of_int (54)) - (Prims.of_int (102)) - (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "ss' =") + uu___20)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -902,42 +926,82 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___18) + (fun + uu___19 + -> + (fun + uu___19 + -> + let uu___20 + = + let uu___21 + = + let uu___22 + = + Pulse_PP.pp + Pulse_PP.printable_term + (Pulse_Checker_Prover_Base.op_Array_Access + ss' q) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (100)) - (Prims.of_int (45)) - (Prims.of_int (100)) - (Prims.of_int (53))))) + (Prims.of_int (101)) + (Prims.of_int (49)) + (Prims.of_int (101)) + (Prims.of_int (61))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (100)) + (Prims.of_int (101)) (Prims.of_int (10)) - (Prims.of_int (100)) - (Prims.of_int (53))))) + (Prims.of_int (101)) + (Prims.of_int (61))))) (Obj.magic - (Pulse_PP.pp - Pulse_Checker_Prover_Substs.pp_ss_t - ss')) + uu___22) (fun - uu___6 -> + uu___23 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___24 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (FStar_Pprint.doc_of_string - "ss' =") - uu___6)))) + "ss'.(q) =") + uu___23)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (101)) + (Prims.of_int (10)) + (Prims.of_int (101)) + (Prims.of_int (61))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (Obj.magic + uu___21) (fun - uu___6 -> + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___23 + -> + [uu___22])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -957,15 +1021,28 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic + uu___20) + (fun + uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + uu___19 + :: + uu___21)))) + uu___19) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (101)) - (Prims.of_int (10)) - (Prims.of_int (101)) - (Prims.of_int (61))))) + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -975,111 +1052,160 @@ let rec (match_f_1n : (Prims.of_int (102)) (Prims.of_int (9))))) (Obj.magic + uu___17) + (fun + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + uu___16 + :: + uu___18)))) + uu___16) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (101)) - (Prims.of_int (49)) - (Prims.of_int (101)) - (Prims.of_int (61))))) + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (101)) - (Prims.of_int (10)) - (Prims.of_int (101)) - (Prims.of_int (61))))) + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - (Pulse_Checker_Prover_Base.op_Array_Access - ss' q))) + uu___14) (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.doc_of_string - "ss'.(q) =") - uu___7)))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - [uu___7])))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___6 :: - uu___7)))) - uu___6))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___5 :: - uu___6)))) - uu___5))) - (fun - uu___5 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - uu___4 :: - uu___5)))) - uu___4))) + uu___16 + -> + uu___13 + :: + uu___15)))) + uu___13) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___13 + -> (Pulse_PP.text (Prims.strcat "Matched with " label)) - :: uu___4)))) + :: + uu___12)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (96)) + (Prims.of_int (54)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (96)) + (Prims.of_int (8)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.info_doc pst.Pulse_Checker_Prover_Base.pg - uu___3 - uu___4)) - uu___4))) - uu___3))) + uu___9 + uu___11)) + uu___11))) + uu___9))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - ())))) + uu___9 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (95)) + (Prims.of_int (6)) + (Prims.of_int (102)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (108)) + (Prims.of_int (6)) + (Prims.of_int (108)) + (Prims.of_int (60))))) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple5 (p, ps, (), ss', ())))))) - uu___3))) - uu___2)) + uu___7))) + uu___5)) | FStar_Pervasives_Native.None -> + let uu___4 = + match_f_1n + label matcher + preamble pst + q ps in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1101,18 +1227,13 @@ let rec (match_f_1n : (Prims.of_int (120)) (Prims.of_int (5))))) (Obj.magic - ( - match_f_1n - label - matcher - preamble - pst q ps)) - (fun uu___2 + uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - match uu___2 + uu___6 -> + match uu___5 with | FStar_Pervasives_Native.None @@ -1133,7 +1254,7 @@ let rec (match_f_1n : ctxt1), (), ss', ())))))) - uu___1))) uu___)))) + uu___3))) uu___1)))) uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let report_ambig : 'a . @@ -1147,6 +1268,25 @@ let report_ambig : fun q -> fun p -> fun p' -> + let uu___ = + let uu___1 = Pulse_Typing_Env.range_of_env g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) (Prims.of_int (31)) + (Prims.of_int (129)) (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) (Prims.of_int (22)) + (Prims.of_int (129)) (Prims.of_int (46))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> FStar_Pervasives_Native.Some uu___2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1158,133 +1298,202 @@ let report_ambig : (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (129)) (Prims.of_int (2)) (Prims.of_int (137)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) (Prims.of_int (31)) - (Prims.of_int (129)) (Prims.of_int (45))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) (Prims.of_int (22)) - (Prims.of_int (129)) (Prims.of_int (46))))) - (Obj.magic (Pulse_Typing_Env.range_of_env g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pervasives_Native.Some uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) (Prims.of_int (47)) - (Prims.of_int (137)) (Prims.of_int (3))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) (Prims.of_int (2)) - (Prims.of_int (137)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (130)) (Prims.of_int (4)) - (Prims.of_int (131)) - (Prims.of_int (19))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) - (Prims.of_int (47)) - (Prims.of_int (137)) (Prims.of_int (3))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = Pulse_PP.pp Pulse_PP.printable_term q in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (131)) - (Prims.of_int (6)) - (Prims.of_int (131)) - (Prims.of_int (19))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (130)) - (Prims.of_int (4)) - (Prims.of_int (131)) - (Prims.of_int (19))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (131)) - (Prims.of_int (13)) - (Prims.of_int (131)) - (Prims.of_int (19))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (131)) - (Prims.of_int (6)) - (Prims.of_int (131)) - (Prims.of_int (19))))) + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (131)) (Prims.of_int (13)) + (Prims.of_int (131)) (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (131)) (Prims.of_int (6)) + (Prims.of_int (131)) (Prims.of_int (19))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> Pulse_PP.indent uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (131)) (Prims.of_int (6)) + (Prims.of_int (131)) (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (130)) (Prims.of_int (4)) + (Prims.of_int (131)) (Prims.of_int (19))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "Ambiguous match for resource:") uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (130)) (Prims.of_int (4)) + (Prims.of_int (131)) (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) (Prims.of_int (47)) + (Prims.of_int (137)) (Prims.of_int (3))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + let uu___9 = + Pulse_PP.pp Pulse_PP.printable_term p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term q)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_PP.indent uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "Ambiguous match for resource:") - uu___1)))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) - (Prims.of_int (47)) - (Prims.of_int (137)) - (Prims.of_int (3))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) - (Prims.of_int (47)) - (Prims.of_int (137)) - (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (13)) + (Prims.of_int (133)) + (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (6)) + (Prims.of_int (133)) + (Prims.of_int (19))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Pulse_PP.indent uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (6)) + (Prims.of_int (133)) + (Prims.of_int (19))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (6)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___8) + (fun uu___9 -> + (fun uu___9 -> + let uu___10 = + let uu___11 = + let uu___12 = + let uu___13 = + let uu___14 = + Pulse_PP.pp + Pulse_PP.printable_term + p' in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (135)) + (Prims.of_int (13)) + (Prims.of_int (135)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (135)) + (Prims.of_int (6)) + (Prims.of_int (135)) + (Prims.of_int (20))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + Pulse_PP.indent + uu___15)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (135)) + (Prims.of_int (6)) + (Prims.of_int (135)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (135)) + (Prims.of_int (6)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + FStar_Pprint.op_Hat_Hat + uu___14 + (FStar_Pprint.op_Hat_Hat + FStar_Pprint.hardline + (Pulse_PP.text + "in the context.")))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (135)) + (Prims.of_int (6)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (134)) + (Prims.of_int (4)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "and:") uu___13)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (132)) + (Prims.of_int (134)) (Prims.of_int (4)) (Prims.of_int (136)) (Prims.of_int (26))))) @@ -1292,234 +1501,131 @@ let report_ambig : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (129)) - (Prims.of_int (47)) - (Prims.of_int (137)) - (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (6)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (132)) - (Prims.of_int (4)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (6)) - (Prims.of_int (133)) - (Prims.of_int (19))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (6)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (13)) - (Prims.of_int (133)) - (Prims.of_int (19))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (6)) - (Prims.of_int (133)) - (Prims.of_int (19))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) - (fun uu___2 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_PP.indent - uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (23)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (6)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (134)) - (Prims.of_int (4)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (133)) - (Prims.of_int (23)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (135)) - (Prims.of_int (6)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (134)) - (Prims.of_int (4)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (135)) - (Prims.of_int (6)) - (Prims.of_int (135)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (135)) - (Prims.of_int (6)) - (Prims.of_int (136)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (135)) - (Prims.of_int (13)) - (Prims.of_int (135)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (135)) - (Prims.of_int (6)) - (Prims.of_int (135)) - (Prims.of_int (20))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p')) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_PP.indent - uu___3)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.op_Hat_Hat - uu___3 - (FStar_Pprint.op_Hat_Hat - FStar_Pprint.hardline - (Pulse_PP.text - "in the context.")))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "and:") - uu___3)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.op_Hat_Hat - FStar_Pprint.hardline - uu___3)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Pprint.op_Hat_Hat - uu___2 - uu___3)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "It can be matched by both:") - uu___2)))) - (fun uu___2 -> + (Prims.of_int (133)) + (Prims.of_int (23)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___11) + (fun uu___12 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> [uu___2])))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___1 :: uu___2)))) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> + (fun uu___13 -> + FStar_Pprint.op_Hat_Hat + FStar_Pprint.hardline + uu___12)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (23)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (6)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_Pprint.op_Hat_Hat + uu___9 uu___11)))) + uu___9) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (133)) + (Prims.of_int (6)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (132)) + (Prims.of_int (4)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "It can be matched by both:") + uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (132)) + (Prims.of_int (4)) + (Prims.of_int (136)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) + (Prims.of_int (47)) + (Prims.of_int (137)) + (Prims.of_int (3))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> [uu___7])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) + (Prims.of_int (47)) + (Prims.of_int (137)) + (Prims.of_int (3))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) + (Prims.of_int (47)) + (Prims.of_int (137)) + (Prims.of_int (3))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___4 :: uu___6)))) + uu___4) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) (Prims.of_int (47)) + (Prims.of_int (137)) (Prims.of_int (3))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (129)) (Prims.of_int (2)) + (Prims.of_int (137)) (Prims.of_int (3))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> Obj.magic - (Pulse_Typing_Env.fail_doc_env true g uu___ - uu___1)) uu___1))) uu___) + (Pulse_Typing_Env.fail_doc_env true g uu___1 + uu___3)) uu___3))) uu___1) let rec (match_f_nn : Prims.string -> Pulse_Checker_Prover_Match_Base.matcher_t -> @@ -1558,7 +1664,10 @@ let rec (match_f_nn : | q::qs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + match_f_nn label matcher_f preamble + pst ctxt qs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1575,11 +1684,53 @@ let rec (match_f_nn : (Prims.of_int (55)) (Prims.of_int (210)) (Prims.of_int (10))))) - (Obj.magic - (match_f_nn label matcher_f - preamble pst ctxt qs)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun mpr -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + { + Pulse_Checker_Prover_Base.pg + = + (pst.Pulse_Checker_Prover_Base.pg); + Pulse_Checker_Prover_Base.remaining_ctxt + = + (pst.Pulse_Checker_Prover_Base.remaining_ctxt); + Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing + = (); + Pulse_Checker_Prover_Base.uvs + = + (pst.Pulse_Checker_Prover_Base.uvs); + Pulse_Checker_Prover_Base.ss + = + (mpr.Pulse_Checker_Prover_Match_Base.ss'); + Pulse_Checker_Prover_Base.nts + = + FStar_Pervasives_Native.None; + Pulse_Checker_Prover_Base.solved + = + (pst.Pulse_Checker_Prover_Base.solved); + Pulse_Checker_Prover_Base.unsolved + = + (pst.Pulse_Checker_Prover_Base.unsolved); + Pulse_Checker_Prover_Base.k + = + (FStar_Pervasives.coerce_eq + () + pst.Pulse_Checker_Prover_Base.k); + Pulse_Checker_Prover_Base.goals_inv + = (); + Pulse_Checker_Prover_Base.solved_inv + = (); + Pulse_Checker_Prover_Base.progress + = + (pst.Pulse_Checker_Prover_Base.progress); + Pulse_Checker_Prover_Base.allow_ambiguous + = + (pst.Pulse_Checker_Prover_Base.allow_ambiguous) + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1598,95 +1749,28 @@ let rec (match_f_nn : (Prims.of_int (4)) (Prims.of_int (210)) (Prims.of_int (10))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - { - Pulse_Checker_Prover_Base.pg - = - (pst.Pulse_Checker_Prover_Base.pg); - Pulse_Checker_Prover_Base.remaining_ctxt - = - (pst.Pulse_Checker_Prover_Base.remaining_ctxt); - Pulse_Checker_Prover_Base.remaining_ctxt_frame_typing - = (); - Pulse_Checker_Prover_Base.uvs - = - (pst.Pulse_Checker_Prover_Base.uvs); - Pulse_Checker_Prover_Base.ss - = - (mpr.Pulse_Checker_Prover_Match_Base.ss'); - Pulse_Checker_Prover_Base.nts - = - FStar_Pervasives_Native.None; - Pulse_Checker_Prover_Base.solved - = - (pst.Pulse_Checker_Prover_Base.solved); - Pulse_Checker_Prover_Base.unsolved - = - (pst.Pulse_Checker_Prover_Base.unsolved); - Pulse_Checker_Prover_Base.k - = - (FStar_Pervasives.coerce_eq - () - pst.Pulse_Checker_Prover_Base.k); - Pulse_Checker_Prover_Base.goals_inv - = (); - Pulse_Checker_Prover_Base.solved_inv - = (); - Pulse_Checker_Prover_Base.progress - = - (pst.Pulse_Checker_Prover_Base.progress); - Pulse_Checker_Prover_Base.allow_ambiguous - = - (pst.Pulse_Checker_Prover_Base.allow_ambiguous) - })) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun pst' -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (160)) - (Prims.of_int (4)) - (Prims.of_int (161)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (162)) - (Prims.of_int (4)) - (Prims.of_int (210)) - (Prims.of_int (10))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env - pst.Pulse_Checker_Prover_Base.pg) - "prover.match" - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (161)) - (Prims.of_int (14)) - (Prims.of_int (161)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (161)) - (Prims.of_int (6)) - (Prims.of_int (161)) - (Prims.of_int (66))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___2 = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env + pst.Pulse_Checker_Prover_Base.pg) + "prover.match" + then + Obj.magic + (Obj.repr + (let uu___3 + = + let uu___4 + = + let uu___5 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + q in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1694,7 +1778,7 @@ let rec (match_f_nn : (Prims.of_int (161)) (Prims.of_int (41)) (Prims.of_int (161)) - (Prims.of_int (65))))) + (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1704,7 +1788,16 @@ let rec (match_f_nn : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___5) + (fun + uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Prims.strcat + uu___6 + " from context")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1712,7 +1805,7 @@ let rec (match_f_nn : (Prims.of_int (161)) (Prims.of_int (41)) (Prims.of_int (161)) - (Prims.of_int (47))))) + (Prims.of_int (65))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1722,64 +1815,82 @@ let rec (match_f_nn : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - q)) - (fun - uu___ -> - FStar_Tactics_Effect.lift_div_tac + uu___4) (fun - uu___1 -> - Prims.strcat - uu___ - " from context")))) - (fun - uu___ -> + uu___5 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___6 -> Prims.strcat "Trying to match goal " - uu___)))) - (fun - uu___ -> + uu___5)) in + FStar_Tactics_Effect.tac_bind + ( + FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (161)) + (Prims.of_int (14)) + (Prims.of_int (161)) + (Prims.of_int (66))))) + ( + FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (161)) + (Prims.of_int (6)) + (Prims.of_int (161)) + (Prims.of_int (66))))) + ( + Obj.magic + uu___3) + ( + fun + uu___4 -> (fun - uu___ -> + uu___4 -> Obj.magic (FStar_Tactics_V1_Builtins.print - uu___)) - uu___))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + uu___4)) + uu___4))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___4 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (163)) - (Prims.of_int (6)) - (Prims.of_int (174)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Prims.of_int (160)) + (Prims.of_int (4)) + (Prims.of_int (161)) + (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (162)) (Prims.of_int (4)) (Prims.of_int (210)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_V2_Derived.try_with + (Obj.magic + uu___2) + (fun uu___3 -> + (fun uu___3 + -> + let uu___4 + = + FStar_Tactics_V2_Derived.try_with (fun - uu___1 -> + uu___5 -> match () with | @@ -1791,10 +1902,10 @@ let rec (match_f_nn : pst' q mpr.Pulse_Checker_Prover_Match_Base.ctxt1) (fun - uu___1 -> + uu___5 -> (fun - uu___1 -> - match uu___1 + uu___5 -> + match uu___5 with | Pulse_Checker_Prover_Match_Base.Ambig @@ -1802,24 +1913,9 @@ let rec (match_f_nn : p') -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (167)) - (Prims.of_int (8)) - (Prims.of_int (172)) - (Prims.of_int (9))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (173)) - (Prims.of_int (8)) - (Prims.of_int (173)) - (Prims.of_int (12))))) - (if + (let uu___6 + = + if Pulse_RuntimeUtils.debug_at_level (Pulse_Typing_Env.fstar_env pst.Pulse_Checker_Prover_Base.pg) @@ -1827,7 +1923,11 @@ let rec (match_f_nn : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + FStar_Tactics_V1_Builtins.print + "Ambiguity detected... continuing to another goal" in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1845,32 +1945,50 @@ let rec (match_f_nn : (Prims.of_int (171)) (Prims.of_int (37))))) (Obj.magic - (FStar_Tactics_V1_Builtins.print - "Ambiguity detected... continuing to another goal")) + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8 -> + let uu___9 + = + let uu___10 + = + let uu___11 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + q1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (169)) - (Prims.of_int (10)) + (Prims.of_int (28)) (Prims.of_int (169)) - (Prims.of_int (35))))) + (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (170)) - (Prims.of_int (10)) - (Prims.of_int (171)) - (Prims.of_int (37))))) + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Prims.strcat + "q = " + uu___12)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1888,14 +2006,60 @@ let rec (match_f_nn : (Prims.of_int (169)) (Prims.of_int (35))))) (Obj.magic + uu___10) + (fun + uu___11 + -> + (fun + uu___11 + -> + Obj.magic + (FStar_Tactics_V1_Builtins.print + uu___11)) + uu___11) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (169)) - (Prims.of_int (28)) + (Prims.of_int (10)) (Prims.of_int (169)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (170)) + (Prims.of_int (10)) + (Prims.of_int (171)) + (Prims.of_int (37))))) + (Obj.magic + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (170)) + (Prims.of_int (28)) + (Prims.of_int (170)) (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic @@ -1906,75 +2070,88 @@ let rec (match_f_nn : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - q1)) + uu___13) (fun - uu___3 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> Prims.strcat - "q = " - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_V1_Builtins.print - uu___3)) - uu___3))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "p = " + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (170)) - (Prims.of_int (10)) + (Prims.of_int (18)) (Prims.of_int (170)) (Prims.of_int (35))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (171)) + (Prims.of_int (170)) (Prims.of_int (10)) - (Prims.of_int (171)) - (Prims.of_int (37))))) + (Prims.of_int (170)) + (Prims.of_int (35))))) (Obj.magic + uu___12) + (fun + uu___13 + -> + (fun + uu___13 + -> + Obj.magic + (FStar_Tactics_V1_Builtins.print + uu___13)) + uu___13) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (170)) - (Prims.of_int (18)) + (Prims.of_int (10)) (Prims.of_int (170)) (Prims.of_int (35))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (170)) + (Prims.of_int (171)) (Prims.of_int (10)) - (Prims.of_int (170)) - (Prims.of_int (35))))) + (Prims.of_int (171)) + (Prims.of_int (37))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + p' in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (170)) - (Prims.of_int (28)) - (Prims.of_int (170)) - (Prims.of_int (34))))) + (Prims.of_int (171)) + (Prims.of_int (29)) + (Prims.of_int (171)) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1984,29 +2161,17 @@ let rec (match_f_nn : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - p)) + uu___14) (fun - uu___4 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___16 + -> Prims.strcat - "p = " - uu___4)))) - (fun - uu___4 -> - (fun - uu___4 -> - Obj.magic - (FStar_Tactics_V1_Builtins.print - uu___4)) - uu___4))) - (fun - uu___4 -> - (fun - uu___4 -> + "p' = " + uu___15)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2026,58 +2191,51 @@ let rec (match_f_nn : (Prims.of_int (171)) (Prims.of_int (37))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Comb.fst" - (Prims.of_int (171)) - (Prims.of_int (29)) - (Prims.of_int (171)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - p')) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Prims.strcat - "p' = " - uu___5)))) + uu___13) (fun - uu___5 -> + uu___14 + -> (fun - uu___5 -> + uu___14 + -> Obj.magic (FStar_Tactics_V1_Builtins.print - uu___5)) - uu___5))) - uu___4))) - uu___3))) - uu___2))) + uu___14)) + uu___14))) + uu___12))) + uu___10))) + uu___8))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - ())))) + uu___8 -> + ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (167)) + (Prims.of_int (8)) + (Prims.of_int (172)) + (Prims.of_int (9))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (173)) + (Prims.of_int (8)) + (Prims.of_int (173)) + (Prims.of_int (12))))) + (Obj.magic + uu___6) (fun - uu___2 -> + uu___7 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> FStar_Pervasives_Native.None)))) | e -> @@ -2085,13 +2243,33 @@ let rec (match_f_nn : (Obj.repr (FStar_Tactics_Effect.raise e))) - uu___1))) + uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (163)) + (Prims.of_int (6)) + (Prims.of_int (174)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Comb.fst" + (Prims.of_int (162)) + (Prims.of_int (4)) + (Prims.of_int (210)) + (Prims.of_int (10))))) + (Obj.magic + uu___4) (fun - uu___1 -> + uu___5 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - match uu___1 + uu___6 -> + match uu___5 with | FStar_Pervasives_Native.None @@ -2148,8 +2326,8 @@ let rec (match_f_nn : Pulse_Checker_Prover_Match_Base.match_ok = () })))) - uu___))) - uu___))) uu___)))) + uu___3))) + uu___2))) uu___1)))) uu___5 uu___4 uu___3 uu___2 uu___1 uu___ let (match_with : Prims.string -> @@ -2163,6 +2341,10 @@ let (match_with : fun matcher -> fun preamble -> fun pst -> + let uu___ = + match_f_nn label matcher preamble pst + pst.Pulse_Checker_Prover_Base.remaining_ctxt + pst.Pulse_Checker_Prover_Base.unsolved in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2174,12 +2356,9 @@ let (match_with : (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Comb.fst" (Prims.of_int (221)) (Prims.of_int (6)) (Prims.of_int (221)) (Prims.of_int (23))))) - (Obj.magic - (match_f_nn label matcher preamble pst - pst.Pulse_Checker_Prover_Base.remaining_ctxt - pst.Pulse_Checker_Prover_Base.unsolved)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun mpr -> Obj.magic (Pulse_Checker_Prover_Match_Base.apply_mpr preamble pst - mpr)) uu___) \ No newline at end of file + mpr)) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Matchers.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Matchers.ml index 91b7caa42..92bb9aed1 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Matchers.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Match_Matchers.ml @@ -115,7 +115,8 @@ let rec zip3 : | (x::xs, y::ys, z::zs) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = zip3 xs ys zs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -128,10 +129,10 @@ let rec zip3 : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (115)) (Prims.of_int (27)) (Prims.of_int (115)) (Prims.of_int (53))))) - (Obj.magic (zip3 xs ys zs)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> (x, y, z) :: uu___)))) + (fun uu___2 -> (x, y, z) :: uu___1)))) | (uu___, uu___1, uu___2) -> Obj.magic (Obj.repr @@ -146,6 +147,43 @@ let (same_head : fun g -> fun t0 -> fun t1 -> + let uu___ = + let uu___1 = FStar_Tactics_V2_SyntaxHelpers.hua t0 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (121)) (Prims.of_int (10)) + (Prims.of_int (121)) (Prims.of_int (18))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (121)) (Prims.of_int (10)) + (Prims.of_int (121)) (Prims.of_int (28))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = FStar_Tactics_V2_SyntaxHelpers.hua t1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (121)) (Prims.of_int (20)) + (Prims.of_int (121)) (Prims.of_int (28))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (121)) (Prims.of_int (10)) + (Prims.of_int (121)) (Prims.of_int (28))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> (uu___2, uu___4))))) uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -159,45 +197,11 @@ let (same_head : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (121)) (Prims.of_int (4)) (Prims.of_int (126)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (121)) (Prims.of_int (10)) - (Prims.of_int (121)) (Prims.of_int (18))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (121)) (Prims.of_int (10)) - (Prims.of_int (121)) (Prims.of_int (28))))) - (Obj.magic (FStar_Tactics_V2_SyntaxHelpers.hua t0)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (121)) (Prims.of_int (20)) - (Prims.of_int (121)) (Prims.of_int (28))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (121)) (Prims.of_int (10)) - (Prims.of_int (121)) (Prims.of_int (28))))) - (Obj.magic (FStar_Tactics_V2_SyntaxHelpers.hua t1)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> (uu___, uu___1))))) uu___))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | (FStar_Pervasives_Native.Some (h0, us0, args0), FStar_Pervasives_Native.Some (h1, us1, args1)) -> ((FStar_Reflection_V2_Builtins.inspect_fv h0) = @@ -205,7 +209,7 @@ let (same_head : && ((FStar_List_Tot_Base.length args0) = (FStar_List_Tot_Base.length args1)) - | uu___2 -> true)) + | uu___3 -> true)) let (eligible_for_smt_equality : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -215,6 +219,11 @@ let (eligible_for_smt_equality : fun g -> fun t0 -> fun t1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + fun uu___2 -> (equational t0) || (equational t1))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -228,10 +237,16 @@ let (eligible_for_smt_equality : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (130)) (Prims.of_int (64)) (Prims.of_int (171)) (Prims.of_int (16))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> fun uu___1 -> (equational t0) || (equational t1))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun either_equational -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun t01 -> + fun t11 -> + FStar_Reflection_TermEq.term_eq t01 t11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -246,19 +261,15 @@ let (eligible_for_smt_equality : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (132)) (Prims.of_int (4)) (Prims.of_int (171)) (Prims.of_int (16))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun t01 -> - fun t11 -> - FStar_Reflection_TermEq.term_eq t01 t11)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun term_eq -> if (term_eq t0 t1) || (either_equational ()) then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> true))) + (fun uu___2 -> true))) else Obj.magic (Obj.repr @@ -266,15 +277,21 @@ let (eligible_for_smt_equality : (Pulse_Syntax_Pure.inspect_term t1)) with | (Pulse_Syntax_Pure.Tm_ForallSL - (uu___1, uu___2, uu___3), + (uu___3, uu___4, uu___5), Pulse_Syntax_Pure.Tm_ForallSL - (uu___4, uu___5, uu___6)) -> + (uu___6, uu___7, uu___8)) -> Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> true)) - | uu___1 -> + (fun uu___9 -> true)) + | uu___3 -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Reflection_V2_Collect.collect_app_ln + t0)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -291,14 +308,17 @@ let (eligible_for_smt_equality : (Prims.of_int (11)) (Prims.of_int (170)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Reflection_V2_Collect.collect_app_ln - t0)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | (h0, args0) -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Reflection_V2_Collect.collect_app_ln + t1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -317,13 +337,10 @@ let (eligible_for_smt_equality : (Prims.of_int (44)) (Prims.of_int (169)) (Prims.of_int (16))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Reflection_V2_Collect.collect_app_ln - t1)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + match uu___7 with | (h1, args1) -> @@ -345,7 +362,11 @@ let (eligible_for_smt_equality : FStar_Reflection_V2_Data.Tv_FVar fv -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + type_of_fv + g fv in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -363,13 +384,12 @@ let (eligible_for_smt_equality : (Prims.of_int (166)) (Prims.of_int (11))))) (Obj.magic - (type_of_fv - g fv)) + uu___8) (fun - uu___4 -> + uu___9 -> (fun - uu___4 -> - match uu___4 + uu___9 -> + match uu___9 with | FStar_Pervasives_Native.None @@ -378,14 +398,23 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - false))) + uu___10 + -> false))) | FStar_Pervasives_Native.Some t -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + FStar_Reflection_V2_Collect.collect_arr_ln_bs + t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -402,20 +431,19 @@ let (eligible_for_smt_equality : (Prims.of_int (21)) (Prims.of_int (165)) (Prims.of_int (13))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Reflection_V2_Collect.collect_arr_ln_bs - t)) + (Obj.magic + uu___10) (fun - uu___5 -> + uu___11 + -> (fun - uu___5 -> - match uu___5 + uu___11 + -> + match uu___11 with | (bs, - uu___6) + uu___12) -> if (FStar_List_Tot_Base.length @@ -427,12 +455,17 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - false))) + uu___13 + -> false))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___14 + = + zip3 bs + args0 + args1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -450,32 +483,34 @@ let (eligible_for_smt_equality : (Prims.of_int (164)) (Prims.of_int (35))))) (Obj.magic - (zip3 bs - args0 - args1)) + uu___14) (fun - uu___8 -> + uu___15 + -> (fun bs_args0_args1 -> Obj.magic (FStar_Tactics_Util.fold_right (fun - uu___9 -> + uu___16 + -> fun - uu___8 -> + uu___15 + -> (fun - uu___8 -> + uu___15 + -> fun acc -> - match uu___8 + match uu___15 with | (b, (a0, - uu___9), + uu___16), (a1, - uu___10)) + uu___17)) -> if Prims.op_Negation @@ -485,12 +520,21 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___18 -> false))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___19 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + (FStar_Reflection_V2_Builtins.inspect_binder + b).FStar_Reflection_V2_Data.attrs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -507,14 +551,10 @@ let (eligible_for_smt_equality : (Prims.of_int (16)) (Prims.of_int (163)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - (FStar_Reflection_V2_Builtins.inspect_binder - b).FStar_Reflection_V2_Data.attrs)) + (Obj.magic + uu___19) (fun - uu___12 + uu___20 -> (fun ats -> @@ -529,7 +569,7 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___20 -> term_eq a0 a1))) @@ -539,104 +579,114 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_V2_Derived.try_with (fun - uu___12 + uu___20 -> match () with | () -> + let uu___21 + = + let uu___22 + = + Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env + g) a0 a1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (26)) + (Prims.of_int (31)) (Prims.of_int (159)) - (Prims.of_int (78))))) + (Prims.of_int (77))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (20)) + (Prims.of_int (26)) (Prims.of_int (159)) (Prims.of_int (78))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + FStar_Pervasives_Native.fst + uu___23)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (31)) + (Prims.of_int (26)) (Prims.of_int (159)) - (Prims.of_int (77))))) + (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (26)) + (Prims.of_int (20)) (Prims.of_int (159)) (Prims.of_int (78))))) (Obj.magic - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env - g) a0 a1)) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - FStar_Pervasives_Native.fst - uu___13)))) + uu___21) (fun - uu___13 + uu___22 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___23 -> FStar_Pervasives_Native.uu___is_Some - uu___13))) + uu___22))) (fun - uu___12 + uu___20 -> (fun - uu___12 + uu___20 -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___21 -> false))) - uu___12))) + uu___20))) | Full -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___20 -> true)))) - uu___12)))) - uu___9 - uu___8) + uu___20)))) + uu___16 + uu___15) bs_args0_args1 true)) - uu___8)))) - uu___5)))) - uu___4)) + uu___15)))) + uu___11)))) + uu___9)) | FStar_Reflection_V2_Data.Tv_UInst (fv, - uu___4) + uu___8) -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + type_of_fv + g fv in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -654,13 +704,14 @@ let (eligible_for_smt_equality : (Prims.of_int (166)) (Prims.of_int (11))))) (Obj.magic - (type_of_fv - g fv)) + uu___9) (fun - uu___5 -> + uu___10 + -> (fun - uu___5 -> - match uu___5 + uu___10 + -> + match uu___10 with | FStar_Pervasives_Native.None @@ -669,14 +720,23 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - false))) + uu___11 + -> false))) | FStar_Pervasives_Native.Some t -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + FStar_Reflection_V2_Collect.collect_arr_ln_bs + t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -693,20 +753,19 @@ let (eligible_for_smt_equality : (Prims.of_int (21)) (Prims.of_int (165)) (Prims.of_int (13))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_Reflection_V2_Collect.collect_arr_ln_bs - t)) + (Obj.magic + uu___11) (fun - uu___6 -> + uu___12 + -> (fun - uu___6 -> - match uu___6 + uu___12 + -> + match uu___12 with | (bs, - uu___7) + uu___13) -> if (FStar_List_Tot_Base.length @@ -718,12 +777,17 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - false))) + uu___14 + -> false))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___15 + = + zip3 bs + args0 + args1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -741,33 +805,34 @@ let (eligible_for_smt_equality : (Prims.of_int (164)) (Prims.of_int (35))))) (Obj.magic - (zip3 bs - args0 - args1)) + uu___15) (fun - uu___9 -> + uu___16 + -> (fun bs_args0_args1 -> Obj.magic (FStar_Tactics_Util.fold_right (fun - uu___10 + uu___17 -> fun - uu___9 -> + uu___16 + -> (fun - uu___9 -> + uu___16 + -> fun acc -> - match uu___9 + match uu___16 with | (b, (a0, - uu___10), + uu___17), (a1, - uu___11)) + uu___18)) -> if Prims.op_Negation @@ -777,12 +842,21 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___19 -> false))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___20 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + (FStar_Reflection_V2_Builtins.inspect_binder + b).FStar_Reflection_V2_Data.attrs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -799,14 +873,10 @@ let (eligible_for_smt_equality : (Prims.of_int (16)) (Prims.of_int (163)) (Prims.of_int (30))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - (FStar_Reflection_V2_Builtins.inspect_binder - b).FStar_Reflection_V2_Data.attrs)) + (Obj.magic + uu___20) (fun - uu___13 + uu___21 -> (fun ats -> @@ -821,7 +891,7 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___21 -> term_eq a0 a1))) @@ -831,118 +901,124 @@ let (eligible_for_smt_equality : (Obj.repr (FStar_Tactics_V2_Derived.try_with (fun - uu___13 + uu___21 -> match () with | () -> + let uu___22 + = + let uu___23 + = + Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env + g) a0 a1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (26)) + (Prims.of_int (31)) (Prims.of_int (159)) - (Prims.of_int (78))))) + (Prims.of_int (77))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (20)) + (Prims.of_int (26)) (Prims.of_int (159)) (Prims.of_int (78))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + FStar_Pervasives_Native.fst + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (31)) + (Prims.of_int (26)) (Prims.of_int (159)) - (Prims.of_int (77))))) + (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (159)) - (Prims.of_int (26)) + (Prims.of_int (20)) (Prims.of_int (159)) (Prims.of_int (78))))) (Obj.magic - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env - g) a0 a1)) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - FStar_Pervasives_Native.fst - uu___14)))) + uu___22) (fun - uu___14 + uu___23 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___15 + uu___24 -> FStar_Pervasives_Native.uu___is_Some - uu___14))) + uu___23))) (fun - uu___13 + uu___21 -> (fun - uu___13 + uu___21 -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___22 -> false))) - uu___13))) + uu___21))) | Full -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___21 -> true)))) - uu___13)))) - uu___10 - uu___9) + uu___21)))) + uu___17 + uu___16) bs_args0_args1 true)) - uu___9)))) - uu___6)))) - uu___5)) + uu___16)))) + uu___12)))) + uu___10)) | - uu___4 -> + uu___8 -> Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___9 -> false)))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___9 -> false)))) - uu___3))) - uu___2)) - | uu___1 -> + uu___7))) + uu___5)) + | uu___3 -> Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> false))))) uu___))) - uu___) + (fun uu___4 -> false))))) uu___2))) + uu___1) let (refl_uvar : FStar_Reflection_Types.term -> Pulse_Typing_Env.env -> @@ -997,8 +1073,59 @@ let (try_solve_uvars : fun uvs -> fun p -> fun q -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___ = + let uu___1 = + let uu___2 = Pulse_Typing_Env.bindings_with_ppname uvs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (192)) (Prims.of_int (12)) + (Prims.of_int (193)) (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (192)) (Prims.of_int (12)) + (Prims.of_int (194)) (Prims.of_int (12))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> FStar_List_Tot_Base.rev uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (192)) (Prims.of_int (12)) + (Prims.of_int (194)) (Prims.of_int (12))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (192)) (Prims.of_int (12)) + (Prims.of_int (203)) (Prims.of_int (8))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + FStar_List_Tot_Base.map + (fun uu___4 -> + match uu___4 with + | ({ Pulse_Syntax_Base.name = name; + Pulse_Syntax_Base.range = uu___5;_}, + x, t) -> + ((FStar_Reflection_V2_Builtins.pack_namedv + (FStar_Tactics_V2_SyntaxCoercions.binding_to_namedv + { + FStar_Reflection_V2_Data.uniq1 = x; + FStar_Reflection_V2_Data.sort3 = t; + FStar_Reflection_V2_Data.ppname3 = + name + })), t)) uu___2)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" @@ -1010,60 +1137,18 @@ let (try_solve_uvars : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (203)) (Prims.of_int (11)) (Prims.of_int (232)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (192)) (Prims.of_int (12)) - (Prims.of_int (194)) (Prims.of_int (12))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (192)) (Prims.of_int (12)) - (Prims.of_int (203)) (Prims.of_int (8))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (192)) (Prims.of_int (12)) - (Prims.of_int (193)) (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (192)) (Prims.of_int (12)) - (Prims.of_int (194)) (Prims.of_int (12))))) - (Obj.magic - (Pulse_Typing_Env.bindings_with_ppname uvs)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_List_Tot_Base.rev uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_List_Tot_Base.map - (fun uu___2 -> - match uu___2 with - | ({ Pulse_Syntax_Base.name = name; - Pulse_Syntax_Base.range = uu___3;_}, - x, t) -> - ((FStar_Reflection_V2_Builtins.pack_namedv - (FStar_Tactics_V2_SyntaxCoercions.binding_to_namedv - { - FStar_Reflection_V2_Data.uniq1 = - x; - FStar_Reflection_V2_Data.sort3 = - t; - FStar_Reflection_V2_Data.ppname3 - = name - })), t)) uu___)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun uvs1 -> + let uu___1 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___2 -> + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + (fun uu___3 -> + FStar_Tactics_V2_Builtins.try_unify + (Pulse_Typing.elab_env g) uvs1 p q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1078,19 +1163,14 @@ let (try_solve_uvars : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (203)) (Prims.of_int (11)) (Prims.of_int (232)) (Prims.of_int (10))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context g) - (fun uu___ -> - FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun uu___1 -> - FStar_Tactics_V2_Builtins.try_unify - (Pulse_Typing.elab_env g) uvs1 p q)))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (l, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1109,12 +1189,10 @@ let (try_solve_uvars : (Prims.of_int (2)) (Prims.of_int (232)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___5 -> match l with | FStar_Pervasives_Native.None -> @@ -1123,8 +1201,8 @@ let (try_solve_uvars : l1 -> FStar_List_Tot_Base.fold_left (fun ss -> - fun uu___3 -> - match uu___3 with + fun uu___6 -> + match uu___6 with | (x, t) -> if (FStar_Set.mem @@ -1148,7 +1226,7 @@ let (try_solve_uvars : t else ss) Pulse_Checker_Prover_Substs.empty - l1)))) uu___))) uu___) + l1)))) uu___2))) uu___1) let rec (unascribe : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> (Pulse_Syntax_Base.term, unit) Prims.dtuple2) @@ -1193,6 +1271,10 @@ let (try_unif_nosmt : fun g -> fun p -> fun q -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> FStar_Reflection_V2_Collect.collect_app_ln p)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1206,12 +1288,16 @@ let (try_unif_nosmt : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (263)) (Prims.of_int (100)) (Prims.of_int (286)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> FStar_Reflection_V2_Collect.collect_app_ln p)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (hp, args_p) -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + FStar_Reflection_V2_Collect.collect_app_ln q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1226,197 +1312,160 @@ let (try_unif_nosmt : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (264)) (Prims.of_int (40)) (Prims.of_int (286)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Reflection_V2_Collect.collect_app_ln q)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | (hq, args_q) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (266)) - (Prims.of_int (2)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (271)) - (Prims.of_int (6)) - (Prims.of_int (286)) - (Prims.of_int (3))))) - (if - Pulse_RuntimeUtils.debug_at_level - (Pulse_Typing_Env.fstar_env g) - "ggg" - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (15)) - (Prims.of_int (267)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (4)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (24)) - (Prims.of_int (267)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (15)) - (Prims.of_int (267)) - (Prims.of_int (39))))) - (Obj.magic - (Pulse_Typing_Env.range_of_env - g)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pervasives_Native.Some - uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range + let uu___4 = + if + Pulse_RuntimeUtils.debug_at_level + (Pulse_Typing_Env.fstar_env g) "ggg" + then + Obj.magic + (Obj.repr + (let uu___5 = + let uu___6 = + Pulse_Typing_Env.range_of_env + g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (24)) + (Prims.of_int (267)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (15)) + (Prims.of_int (267)) + (Prims.of_int (39))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pervasives_Native.Some + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (15)) + (Prims.of_int (267)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (4)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + let uu___9 = + let uu___10 = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (40)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range + (Prims.of_int (269)) + (Prims.of_int (20)) + (Prims.of_int (269)) + (Prims.of_int (24))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (4)) - (Prims.of_int (271)) - (Prims.of_int (5))))) + (Prims.of_int (269)) + (Prims.of_int (6)) + (Prims.of_int (269)) + (Prims.of_int (24))))) + (Obj.magic + uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "p: ") + uu___11)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (40)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (40)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (269)) (Prims.of_int (6)) (Prims.of_int (269)) (Prims.of_int (24))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (267)) (Prims.of_int (40)) (Prims.of_int (271)) (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + q in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (269)) + (Prims.of_int (270)) (Prims.of_int (20)) - (Prims.of_int (269)) + (Prims.of_int (270)) (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (269)) + (Prims.of_int (270)) (Prims.of_int (6)) - (Prims.of_int (269)) + (Prims.of_int (270)) (Prims.of_int (24))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___13) (fun - uu___3 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text - "p: ") - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (40)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (267)) - (Prims.of_int (40)) - (Prims.of_int (271)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "q: ") + uu___14)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1434,75 +1483,140 @@ let (try_unif_nosmt : (Prims.of_int (271)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + [uu___13])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (270)) - (Prims.of_int (20)) - (Prims.of_int (270)) - (Prims.of_int (24))))) + (Prims.of_int (267)) + (Prims.of_int (40)) + (Prims.of_int (271)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (270)) - (Prims.of_int (6)) - (Prims.of_int (270)) - (Prims.of_int (24))))) + (Prims.of_int (267)) + (Prims.of_int (40)) + (Prims.of_int (271)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q)) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "q: ") - uu___4)))) + uu___11) (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - [uu___4])))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - ( - fun - uu___3 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - (Pulse_PP.text - "try_unify_nosmt") - :: uu___3)))) - (fun uu___3 -> - (fun uu___3 + uu___13 -> - Obj.magic - (Pulse_Typing_Env.info_doc - g uu___2 - uu___3)) - uu___3))) - uu___2))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> ())))) - (fun uu___2 -> - (fun uu___2 -> + uu___10 + :: + uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (40)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (40)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + (Pulse_PP.text + "try_unify_nosmt") + :: uu___9)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (40)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (267)) + (Prims.of_int (4)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + Obj.magic + (Pulse_Typing_Env.info_doc + g uu___6 + uu___8)) + uu___8))) + uu___6))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (266)) + (Prims.of_int (2)) + (Prims.of_int (271)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (271)) + (Prims.of_int (6)) + (Prims.of_int (286)) + (Prims.of_int (3))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + if + FStar_Reflection_TermEq.term_eq + hp hq + then + Obj.magic + (Obj.repr + (Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env + g) p q)) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + (FStar_Pervasives_Native.None, + [])))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1521,26 +1635,11 @@ let (try_unif_nosmt : (Prims.of_int (6)) (Prims.of_int (272)) (Prims.of_int (7))))) - (if - FStar_Reflection_TermEq.term_eq - hp hq - then - Obj.magic - (Obj.repr - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env - g) p q)) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - (FStar_Pervasives_Native.None, - []))))) + (Obj.magic uu___6) (fun r -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> r)))) - uu___2))) uu___1))) uu___) + (fun uu___7 -> r)))) + uu___5))) uu___3))) uu___1) let (head_is_uvar : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1548,6 +1647,7 @@ let (head_is_uvar : = fun uvs -> fun t -> + let uu___ = FStar_Tactics_V2_SyntaxHelpers.collect_app t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1559,11 +1659,12 @@ let (head_is_uvar : (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (288)) (Prims.of_int (50)) (Prims.of_int (293)) (Prims.of_int (14))))) - (Obj.magic (FStar_Tactics_V2_SyntaxHelpers.collect_app t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (hd, uu___1) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (hd, uu___2) -> + let uu___3 = FStar_Tactics_NamedView.inspect hd in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1578,20 +1679,20 @@ let (head_is_uvar : "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (290)) (Prims.of_int (2)) (Prims.of_int (293)) (Prims.of_int (14))))) - (Obj.magic (FStar_Tactics_NamedView.inspect hd)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with + (fun uu___5 -> + match uu___4 with | FStar_Tactics_NamedView.Tv_Var v -> FStar_List_Tot_Base.existsb - (fun uu___4 -> - match uu___4 with - | (x, uu___5) -> + (fun uu___6 -> + match uu___6 with + | (x, uu___7) -> x = v.FStar_Reflection_V2_Data.uniq) (Pulse_Typing_Env.bindings uvs) - | uu___4 -> false)))) uu___) + | uu___6 -> false)))) uu___1) let (match_syntactic_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = fun preamble -> fun pst -> @@ -1612,6 +1713,9 @@ let (match_fastunif_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = fun pst -> fun p -> fun q -> + let uu___ = + Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env pst.Pulse_Checker_Prover_Base.pg) p q in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1625,18 +1729,15 @@ let (match_fastunif_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (312)) (Prims.of_int (2)) (Prims.of_int (314)) (Prims.of_int (40))))) - (Obj.magic - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env pst.Pulse_Checker_Prover_Base.pg) p - q)) - (fun uu___ -> - match uu___ with - | (FStar_Pervasives_Native.Some tok, uu___1) -> + (Obj.magic uu___) + (fun uu___1 -> + match uu___1 with + | (FStar_Pervasives_Native.Some tok, uu___2) -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.Mkdtuple2 (Pulse_Checker_Prover_Substs.empty, ())) - | (FStar_Pervasives_Native.None, uu___1) -> + | (FStar_Pervasives_Native.None, uu___2) -> FStar_Tactics_Effect.raise (Pulse_Checker_Prover_Match_Base.NoMatch "no unif")) let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = @@ -1644,6 +1745,10 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = fun pst -> fun p -> fun q -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> pst.Pulse_Checker_Prover_Base.pg)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1657,10 +1762,12 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (320)) (Prims.of_int (19)) (Prims.of_int (363)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> pst.Pulse_Checker_Prover_Base.pg)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1675,9 +1782,63 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (324)) (Prims.of_int (2)) (Prims.of_int (363)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> q)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun q0 -> + let uu___2 = + let uu___3 = + let uu___4 = + same_head pst.Pulse_Checker_Prover_Base.pg + p q in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (324)) + (Prims.of_int (12)) + (Prims.of_int (324)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (324)) + (Prims.of_int (5)) + (Prims.of_int (324)) + (Prims.of_int (32))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.op_Negation uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (324)) + (Prims.of_int (5)) + (Prims.of_int (324)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (324)) + (Prims.of_int (2)) + (Prims.of_int (325)) + (Prims.of_int (35))))) + (Obj.magic uu___3) + (fun uu___4 -> + if uu___4 + then + FStar_Tactics_Effect.raise + (Pulse_Checker_Prover_Match_Base.NoMatch + "head mismatch") + else + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1696,61 +1857,14 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (36)) (Prims.of_int (363)) (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (324)) - (Prims.of_int (5)) - (Prims.of_int (324)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (324)) - (Prims.of_int (2)) - (Prims.of_int (325)) - (Prims.of_int (35))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (324)) - (Prims.of_int (12)) - (Prims.of_int (324)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (324)) - (Prims.of_int (5)) - (Prims.of_int (324)) - (Prims.of_int (32))))) - (Obj.magic - (same_head - pst.Pulse_Checker_Prover_Base.pg - p q)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.op_Negation uu___)))) - (fun uu___ -> - if uu___ - then - FStar_Tactics_Effect.raise - (Pulse_Checker_Prover_Match_Base.NoMatch - "head mismatch") - else - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + try_solve_uvars + pst.Pulse_Checker_Prover_Base.pg + pst.Pulse_Checker_Prover_Base.uvs + p q in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1769,13 +1883,15 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (49)) (Prims.of_int (363)) (Prims.of_int (21))))) - (Obj.magic - (try_solve_uvars - pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs - p q)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ss' -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Checker_Prover_Base.op_Array_Access + ss' q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1794,33 +1910,22 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (26)) (Prims.of_int (363)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Checker_Prover_Base.op_Array_Access - ss' q)) - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun q_subst -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (335)) - (Prims.of_int (4)) - (Prims.of_int (342)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (343)) - (Prims.of_int (4)) - (Prims.of_int (363)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + ( + fun + uu___8 -> + FStar_Tactics_V2_Builtins.tc_term + (Pulse_Typing.elab_env + g) + q_subst) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" @@ -1828,7 +1933,7 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (10)) (Prims.of_int (335)) (Prims.of_int (77))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" @@ -1836,25 +1941,18 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (4)) (Prims.of_int (342)) (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun - uu___1 -> - FStar_Tactics_V2_Builtins.tc_term - (Pulse_Typing.elab_env - g) - q_subst))) - (fun - uu___1 -> + (Obj.magic + uu___7) + (fun uu___8 + -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | (FStar_Pervasives_Native.Some (q_subst', - uu___2), + uu___9), []) -> Obj.magic (Obj.repr @@ -1866,17 +1964,44 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = FStar_Pervasives.iota] q_subst')) | - uu___2 -> + uu___9 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.raise (Pulse_Checker_Prover_Match_Base.NoMatch "uvar solution did not check")))) - uu___1))) + uu___8) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (335)) + (Prims.of_int (4)) + (Prims.of_int (342)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (343)) + (Prims.of_int (4)) + (Prims.of_int (363)) + (Prims.of_int (21))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun q_norm -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1895,59 +2020,29 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (2)) (Prims.of_int (363)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun q_subst_eq_q_norm -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (346)) - (Prims.of_int (2)) - (Prims.of_int (353)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (355)) - (Prims.of_int (2)) - (Prims.of_int (363)) - (Prims.of_int (21))))) - (if + let uu___8 + = + if Pulse_RuntimeUtils.debug_at_level (Pulse_Typing_Env.fstar_env g) "ggg" then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (15)) - (Prims.of_int (347)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (4)) - (Prims.of_int (353)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + let uu___10 + = + Pulse_Typing_Env.range_of_env + g in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1965,29 +2060,25 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (347)) (Prims.of_int (39))))) (Obj.magic - (Pulse_Typing_Env.range_of_env - g)) + uu___10) (fun - uu___1 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___12 + -> FStar_Pervasives_Native.Some - uu___1)))) - (fun - uu___1 -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (347)) - (Prims.of_int (40)) - (Prims.of_int (353)) - (Prims.of_int (5))))) + (Prims.of_int (15)) + (Prims.of_int (347)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1997,25 +2088,55 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + let uu___13 + = + let uu___14 + = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (40)) - (Prims.of_int (353)) - (Prims.of_int (5))))) + (Prims.of_int (349)) + (Prims.of_int (20)) + (Prims.of_int (349)) + (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (40)) - (Prims.of_int (353)) - (Prims.of_int (5))))) + (Prims.of_int (349)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (24))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "p: ") + uu___15)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2033,50 +2154,61 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + (fun + uu___14 + -> + let uu___15 + = + let uu___16 + = + let uu___17 + = + Pulse_PP.pp + Pulse_PP.printable_term + q in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (349)) + (Prims.of_int (350)) (Prims.of_int (20)) - (Prims.of_int (349)) + (Prims.of_int (350)) (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (349)) + (Prims.of_int (350)) (Prims.of_int (6)) - (Prims.of_int (349)) + (Prims.of_int (350)) (Prims.of_int (24))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___17) (fun - uu___2 -> + uu___18 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___19 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text - "p: ") - uu___2)))) - (fun - uu___2 -> - (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "q: ") + uu___18)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (40)) - (Prims.of_int (353)) - (Prims.of_int (5))))) + (Prims.of_int (350)) + (Prims.of_int (6)) + (Prims.of_int (350)) + (Prims.of_int (24))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2086,15 +2218,61 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + (fun + uu___17 + -> + let uu___18 + = + let uu___19 + = + let uu___20 + = + Pulse_PP.pp + Pulse_PP.printable_term + q_subst in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (350)) + (Prims.of_int (351)) + (Prims.of_int (26)) + (Prims.of_int (351)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (351)) (Prims.of_int (6)) - (Prims.of_int (350)) - (Prims.of_int (24))))) + (Prims.of_int (351)) + (Prims.of_int (36))))) + (Obj.magic + uu___20) + (fun + uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text + "q_subst: ") + uu___21)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (351)) + (Prims.of_int (6)) + (Prims.of_int (351)) + (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2104,50 +2282,61 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + (fun + uu___20 + -> + let uu___21 + = + let uu___22 + = + let uu___23 + = + Pulse_PP.pp + Pulse_PP.printable_term + q_norm in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (350)) - (Prims.of_int (20)) - (Prims.of_int (350)) - (Prims.of_int (24))))) + (Prims.of_int (352)) + (Prims.of_int (25)) + (Prims.of_int (352)) + (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (350)) + (Prims.of_int (352)) (Prims.of_int (6)) - (Prims.of_int (350)) - (Prims.of_int (24))))) + (Prims.of_int (352)) + (Prims.of_int (34))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q)) + uu___23) (fun - uu___3 -> + uu___24 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___25 + -> FStar_Pprint.op_Hat_Hat (Pulse_PP.text - "q: ") - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "q_norm: ") + uu___24)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (347)) - (Prims.of_int (40)) - (Prims.of_int (353)) - (Prims.of_int (5))))) + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (352)) + (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2157,15 +2346,25 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + [uu___23])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (351)) - (Prims.of_int (6)) - (Prims.of_int (351)) - (Prims.of_int (36))))) + (Prims.of_int (347)) + (Prims.of_int (40)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2175,40 +2374,49 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic + uu___21) + (fun + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___23 + -> + uu___20 + :: + uu___22)))) + uu___20) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (351)) - (Prims.of_int (26)) - (Prims.of_int (351)) - (Prims.of_int (36))))) + (Prims.of_int (347)) + (Prims.of_int (40)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (351)) - (Prims.of_int (6)) - (Prims.of_int (351)) - (Prims.of_int (36))))) + (Prims.of_int (347)) + (Prims.of_int (40)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q_subst)) + uu___18) (fun - uu___4 -> + uu___19 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "q_subst: ") - uu___4)))) - (fun - uu___4 -> - (fun - uu___4 -> + uu___20 + -> + uu___17 + :: + uu___19)))) + uu___17) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2228,15 +2436,27 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + uu___14 + :: + uu___16)))) + uu___14) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (352)) - (Prims.of_int (34))))) + (Prims.of_int (347)) + (Prims.of_int (40)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2246,95 +2466,87 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (353)) (Prims.of_int (5))))) (Obj.magic + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + (Pulse_PP.text + "match_fastunif_inst_11") + :: + uu___13)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (352)) - (Prims.of_int (25)) - (Prims.of_int (352)) - (Prims.of_int (34))))) + (Prims.of_int (347)) + (Prims.of_int (40)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (352)) - (Prims.of_int (34))))) + (Prims.of_int (347)) + (Prims.of_int (4)) + (Prims.of_int (353)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q_norm)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text - "q_norm: ") - uu___5)))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - [uu___5])))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___4 :: - uu___5)))) - uu___4))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___2 :: - uu___3)))) - uu___2))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - (Pulse_PP.text - "match_fastunif_inst_11") - :: uu___2)))) + uu___11) (fun - uu___2 -> + uu___12 + -> (fun - uu___2 -> + uu___12 + -> Obj.magic (Pulse_Typing_Env.info_doc - g uu___1 - uu___2)) - uu___2))) - uu___1))) + g uu___10 + uu___12)) + uu___12))) + uu___10))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - ())))) + uu___10 + -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (346)) + (Prims.of_int (2)) + (Prims.of_int (353)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (355)) + (Prims.of_int (2)) + (Prims.of_int (363)) + (Prims.of_int (21))))) + (Obj.magic + uu___8) (fun - uu___1 -> + uu___9 -> (fun - uu___1 -> + uu___9 -> + let uu___10 + = + Pulse_Typing_Util.check_equiv_now_nosmt + (Pulse_Typing.elab_env + pst.Pulse_Checker_Prover_Base.pg) + p q_norm in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2354,17 +2566,15 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (363)) (Prims.of_int (21))))) (Obj.magic - (Pulse_Typing_Util.check_equiv_now_nosmt - (Pulse_Typing.elab_env - pst.Pulse_Checker_Prover_Base.pg) - p q_norm)) + uu___10) (fun - uu___2 -> - match uu___2 + uu___11 + -> + match uu___11 with | (FStar_Pervasives_Native.None, - uu___3) + uu___12) -> FStar_Tactics_Effect.raise (Pulse_Checker_Prover_Match_Base.NoMatch @@ -2372,23 +2582,28 @@ let (match_fastunif_inst_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = | (FStar_Pervasives_Native.Some token, - uu___3) + uu___12) -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> Prims.Mkdtuple2 (ss', ()))))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___))) uu___))) uu___) + uu___9))) + uu___8))) + uu___7))) + uu___6))) uu___5))) + uu___3))) uu___2))) uu___1) let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = fun preamble -> fun pst -> fun p -> fun q -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> pst.Pulse_Checker_Prover_Base.pg)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2402,10 +2617,12 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (371)) (Prims.of_int (19)) (Prims.of_int (414)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> pst.Pulse_Checker_Prover_Base.pg)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2420,9 +2637,63 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (375)) (Prims.of_int (2)) (Prims.of_int (414)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> q)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun q0 -> + let uu___2 = + let uu___3 = + let uu___4 = + same_head pst.Pulse_Checker_Prover_Base.pg + p q in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (375)) + (Prims.of_int (12)) + (Prims.of_int (375)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (375)) + (Prims.of_int (5)) + (Prims.of_int (375)) + (Prims.of_int (32))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.op_Negation uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (375)) + (Prims.of_int (5)) + (Prims.of_int (375)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (375)) + (Prims.of_int (2)) + (Prims.of_int (376)) + (Prims.of_int (35))))) + (Obj.magic uu___3) + (fun uu___4 -> + if uu___4 + then + FStar_Tactics_Effect.raise + (Pulse_Checker_Prover_Match_Base.NoMatch + "head mismatch") + else + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2441,61 +2712,14 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (36)) (Prims.of_int (414)) (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (375)) - (Prims.of_int (5)) - (Prims.of_int (375)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (375)) - (Prims.of_int (2)) - (Prims.of_int (376)) - (Prims.of_int (35))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (375)) - (Prims.of_int (12)) - (Prims.of_int (375)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (375)) - (Prims.of_int (5)) - (Prims.of_int (375)) - (Prims.of_int (32))))) - (Obj.magic - (same_head - pst.Pulse_Checker_Prover_Base.pg - p q)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.op_Negation uu___)))) - (fun uu___ -> - if uu___ - then - FStar_Tactics_Effect.raise - (Pulse_Checker_Prover_Match_Base.NoMatch - "head mismatch") - else - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + try_solve_uvars + pst.Pulse_Checker_Prover_Base.pg + pst.Pulse_Checker_Prover_Base.uvs + p q in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2514,13 +2738,15 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (49)) (Prims.of_int (414)) (Prims.of_int (21))))) - (Obj.magic - (try_solve_uvars - pst.Pulse_Checker_Prover_Base.pg - pst.Pulse_Checker_Prover_Base.uvs - p q)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ss' -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Checker_Prover_Base.op_Array_Access + ss' q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2539,33 +2765,22 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (26)) (Prims.of_int (414)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Checker_Prover_Base.op_Array_Access - ss' q)) - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun q_subst -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (386)) - (Prims.of_int (4)) - (Prims.of_int (393)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (394)) - (Prims.of_int (4)) - (Prims.of_int (414)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + ( + fun + uu___8 -> + FStar_Tactics_V2_Builtins.tc_term + (Pulse_Typing.elab_env + g) + q_subst) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" @@ -2573,7 +2788,7 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (10)) (Prims.of_int (386)) (Prims.of_int (77))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" @@ -2581,25 +2796,18 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (4)) (Prims.of_int (393)) (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun - uu___1 -> - FStar_Tactics_V2_Builtins.tc_term - (Pulse_Typing.elab_env - g) - q_subst))) - (fun - uu___1 -> + (Obj.magic + uu___7) + (fun uu___8 + -> (fun - uu___1 -> - match uu___1 + uu___8 -> + match uu___8 with | (FStar_Pervasives_Native.Some (q_subst', - uu___2), + uu___9), []) -> Obj.magic (Obj.repr @@ -2611,17 +2819,44 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = FStar_Pervasives.iota] q_subst')) | - uu___2 -> + uu___9 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.raise (Pulse_Checker_Prover_Match_Base.NoMatch "uvar solution did not check")))) - uu___1))) + uu___8) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (386)) + (Prims.of_int (4)) + (Prims.of_int (393)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Match.Matchers.fst" + (Prims.of_int (394)) + (Prims.of_int (4)) + (Prims.of_int (414)) + (Prims.of_int (21))))) + (Obj.magic + uu___6) (fun - uu___1 -> + uu___7 -> (fun q_norm -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2640,35 +2875,51 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (2)) (Prims.of_int (414)) (Prims.of_int (21))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) + (Obj.magic + uu___7) (fun - uu___1 -> + uu___8 -> (fun q_subst_eq_q_norm -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___8 + = + let uu___9 + = + let uu___10 + = + eligible_for_smt_equality + g p + q_norm in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (403)) - (Prims.of_int (2)) - (Prims.of_int (404)) - (Prims.of_int (42))))) + (Prims.of_int (9)) + (Prims.of_int (403)) + (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (407)) - (Prims.of_int (2)) - (Prims.of_int (414)) - (Prims.of_int (21))))) + (Prims.of_int (403)) + (Prims.of_int (5)) + (Prims.of_int (403)) + (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Prims.op_Negation + uu___11)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2686,50 +2937,51 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (404)) (Prims.of_int (42))))) (Obj.magic + uu___9) + (fun + uu___10 + -> + if + uu___10 + then + FStar_Tactics_Effect.raise + (Pulse_Checker_Prover_Match_Base.NoMatch + "not eligible for SMT") + else + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> ())) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" (Prims.of_int (403)) - (Prims.of_int (9)) - (Prims.of_int (403)) - (Prims.of_int (47))))) + (Prims.of_int (2)) + (Prims.of_int (404)) + (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Prover.Match.Matchers.fst" - (Prims.of_int (403)) - (Prims.of_int (5)) - (Prims.of_int (403)) - (Prims.of_int (47))))) + (Prims.of_int (407)) + (Prims.of_int (2)) + (Prims.of_int (414)) + (Prims.of_int (21))))) (Obj.magic - (eligible_for_smt_equality - g p - q_norm)) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Prims.op_Negation - uu___1)))) - (fun - uu___1 -> - if uu___1 - then - FStar_Tactics_Effect.raise - (Pulse_Checker_Prover_Match_Base.NoMatch - "not eligible for SMT") - else - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())))) + uu___8) (fun - uu___1 -> + uu___9 -> (fun - uu___1 -> + uu___9 -> + let uu___10 + = + Pulse_Typing_Util.check_equiv_now + (Pulse_Typing.elab_env + g) p + q_norm in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2749,17 +3001,15 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = (Prims.of_int (414)) (Prims.of_int (21))))) (Obj.magic - (Pulse_Typing_Util.check_equiv_now - (Pulse_Typing.elab_env - g) p - q_norm)) + uu___10) (fun - uu___2 -> - match uu___2 + uu___11 + -> + match uu___11 with | (FStar_Pervasives_Native.None, - uu___3) + uu___12) -> FStar_Tactics_Effect.raise (Pulse_Checker_Prover_Match_Base.NoMatch @@ -2767,15 +3017,16 @@ let (match_full_11 : Pulse_Checker_Prover_Match_Base.matcher_t) = | (FStar_Pervasives_Native.Some token, - uu___3) + uu___12) -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> Prims.Mkdtuple2 (ss', ()))))) - uu___1))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___))) uu___))) uu___) \ No newline at end of file + uu___9))) + uu___8))) + uu___7))) + uu___6))) uu___5))) + uu___3))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Substs.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Substs.ml index 9b0b36384..4e74c71b4 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Substs.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Substs.ml @@ -44,7 +44,8 @@ let rec separate_map : | x::xs1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f x in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -57,9 +58,10 @@ let rec separate_map : "Pulse.Checker.Prover.Substs.fst" (Prims.of_int (77)) (Prims.of_int (20)) (Prims.of_int (79)) (Prims.of_int (22))))) - (Obj.magic (f x)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun doc -> + let uu___1 = separate_map sep f xs1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -78,20 +80,94 @@ let rec separate_map : (Prims.of_int (4)) (Prims.of_int (79)) (Prims.of_int (22))))) - (Obj.magic (separate_map sep f xs1)) + (Obj.magic uu___1) (fun docs -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> FStar_Pprint.op_Hat_Hat doc (FStar_Pprint.op_Hat_Hat sep - docs))))) uu___)))) uu___2 - uu___1 uu___ + docs))))) uu___1)))) + uu___2 uu___1 uu___ let (pp_ss_t : ss_t Pulse_PP.printable) = { Pulse_PP.pp = (fun uu___ -> match uu___ with | { l; m;_} -> + let uu___1 = + separate_map + (FStar_Pprint.op_Hat_Hat FStar_Pprint.comma + (FStar_Pprint.break_ Prims.int_one)) + (fun k -> + let uu___2 = Pulse_PP.pp Pulse_PP.printable_int k in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) (Prims.of_int (15)) + (Prims.of_int (87)) (Prims.of_int (28))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) (Prims.of_int (15)) + (Prims.of_int (87)) (Prims.of_int (72))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + Pulse_PP.pp Pulse_PP.printable_term + (FStar_Map.sel m k) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) + (Prims.of_int (56)) + (Prims.of_int (87)) + (Prims.of_int (72))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) + (Prims.of_int (32)) + (Prims.of_int (87)) + (Prims.of_int (72))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string " -> ") + uu___6)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) + (Prims.of_int (32)) + (Prims.of_int (87)) + (Prims.of_int (72))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (87)) + (Prims.of_int (15)) + (Prims.of_int (87)) + (Prims.of_int (72))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pprint.op_Hat_Hat uu___3 + uu___5)))) uu___3)) l in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -103,81 +179,10 @@ let (pp_ss_t : ss_t Pulse_PP.printable) = (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" (Prims.of_int (86)) (Prims.of_int (8)) (Prims.of_int (88)) (Prims.of_int (21))))) - (Obj.magic - (separate_map - (FStar_Pprint.op_Hat_Hat FStar_Pprint.comma - (FStar_Pprint.break_ Prims.int_one)) - (fun k -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) (Prims.of_int (15)) - (Prims.of_int (87)) (Prims.of_int (28))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) (Prims.of_int (15)) - (Prims.of_int (87)) (Prims.of_int (72))))) - (Obj.magic (Pulse_PP.pp Pulse_PP.printable_int k)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) - (Prims.of_int (32)) - (Prims.of_int (87)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) - (Prims.of_int (15)) - (Prims.of_int (87)) - (Prims.of_int (72))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) - (Prims.of_int (56)) - (Prims.of_int (87)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (87)) - (Prims.of_int (32)) - (Prims.of_int (87)) - (Prims.of_int (72))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - (FStar_Map.sel m k))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string - " -> ") uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.op_Hat_Hat uu___1 - uu___2)))) uu___1)) l)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> FStar_Pprint.brackets uu___1))) + (fun uu___3 -> FStar_Pprint.brackets uu___2))) } let (showable_ss_t : ss_t Pulse_Show.tac_showable) = Pulse_PP.show_from_pp pp_ss_t @@ -367,6 +372,24 @@ let rec (ss_to_nt_substs : fun g -> fun uvs -> fun ss -> + let uu___ = + let uu___1 = Pulse_Typing_Env.range_of_env g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (323)) (Prims.of_int (47)) + (Prims.of_int (323)) (Prims.of_int (63))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" + (Prims.of_int (323)) (Prims.of_int (10)) + (Prims.of_int (323)) (Prims.of_int (63))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.push_context g "ss_to_nt_substs" uu___2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -378,46 +401,34 @@ let rec (ss_to_nt_substs : (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" (Prims.of_int (324)) (Prims.of_int (2)) (Prims.of_int (348)) (Prims.of_int (66))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (323)) (Prims.of_int (47)) - (Prims.of_int (323)) (Prims.of_int (63))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Prover.Substs.fst" - (Prims.of_int (323)) (Prims.of_int (10)) - (Prims.of_int (323)) (Prims.of_int (63))))) - (Obj.magic (Pulse_Typing_Env.range_of_env g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_context g "ss_to_nt_substs" - uu___)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> match Pulse_Typing_Env.bindings uvs with | [] -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___1 -> match ss.l with | [] -> FStar_Pervasives.Inl (Prims.Mkdtuple2 ([], [])) - | x::uu___1 -> + | x::uu___2 -> FStar_Pervasives.Inr (Prims.strcat "extra uvars in the substitutions collected by the prover, e.g._#" (Prims.strcat (Prims.string_of_int x) ""))))) - | uu___ -> + | uu___1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.remove_binding uvs)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -430,18 +441,21 @@ let rec (ss_to_nt_substs : "Pulse.Checker.Prover.Substs.fst" (Prims.of_int (330)) (Prims.of_int (8)) (Prims.of_int (348)) (Prims.of_int (66))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.remove_binding uvs)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | (x, ty, rest_uvs) -> if FStar_Map.contains ss.m x then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Map.sel ss.m x)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -458,11 +472,12 @@ let rec (ss_to_nt_substs : (Prims.of_int (34)) (Prims.of_int (347)) (Prims.of_int (16))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Map.sel ss.m x)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun t -> + let uu___5 = + Pulse_Checker_Pure.core_check_term_at_type + g1 t ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -481,16 +496,31 @@ let rec (ss_to_nt_substs : (Prims.of_int (34)) (Prims.of_int (347)) (Prims.of_int (16))))) - (Obj.magic - (Pulse_Checker_Pure.core_check_term_at_type - g1 t ty)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Prims.Mkdtuple2 (eff, d) -> + let uu___7 + = + ss_to_nt_substs + g1 + (Pulse_Typing_Env.subst_env + rest_uvs + [ + FStar_Reflection_Typing.NT + (x, t)]) + { + l = + (remove_l + ss.l x); + m = + (remove_map + ss.m x) + } in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -510,26 +540,12 @@ let rec (ss_to_nt_substs : (Prims.of_int (347)) (Prims.of_int (16))))) (Obj.magic - (ss_to_nt_substs - g1 - (Pulse_Typing_Env.subst_env - rest_uvs - [ - FStar_Reflection_Typing.NT - (x, t)]) - { - l = - (remove_l - ss.l x); - m = - (remove_map - ss.m x) - })) + uu___7) (fun ropt -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> match ropt with | @@ -551,20 +567,20 @@ let rec (ss_to_nt_substs : :: nts), (eff :: effect_labels))))))) - uu___2))) - uu___2))) + uu___6))) + uu___5))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___5 -> FStar_Pervasives.Inr (Prims.strcat "prover could not prove uvar _#" (Prims.strcat (Prims.string_of_int x) "")))))) - uu___1)))) uu___) + uu___3)))) uu___1) let rec (well_typed_nt_substs_prefix : Pulse_Typing_Env.env -> Pulse_Typing_Env.env -> diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Util.ml b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Util.ml index 8467893a7..09aa6041f 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Prover_Util.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Prover_Util.ml @@ -14,7 +14,8 @@ let (debug_prover : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = s () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -27,11 +28,11 @@ let (debug_prover : "Pulse.Checker.Prover.Util.fst" (Prims.of_int (23)) (Prims.of_int (7)) (Prims.of_int (23)) (Prims.of_int (21))))) - (Obj.magic (s ())) - (fun uu___ -> - (fun uu___ -> - Obj.magic (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + Obj.magic (FStar_Tactics_V2_Builtins.print uu___1)) + uu___1))) else Obj.magic (Obj.repr diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Pure.ml b/src/ocaml/plugin/generated/Pulse_Checker_Pure.ml index 47c8af002..2539c5725 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Pure.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Pure.ml @@ -10,6 +10,7 @@ let (debug : = fun g -> fun msg -> + let uu___ = FStar_Tactics_V2_Builtins.debugging () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -20,9 +21,8 @@ let (debug : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (38)) (Prims.of_int (2)) (Prims.of_int (39)) - (Prims.of_int (47))))) - (Obj.magic (FStar_Tactics_V2_Builtins.debugging ())) - (fun uu___ -> + (Prims.of_int (47))))) (Obj.magic uu___) + (fun uu___1 -> (fun tac_debugging -> if tac_debugging || @@ -31,7 +31,71 @@ let (debug : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + let uu___2 = Pulse_Typing_Env.print_context g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (39)) (Prims.of_int (16)) + (Prims.of_int (39)) (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (39)) (Prims.of_int (15)) + (Prims.of_int (39)) (Prims.of_int (47))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = msg () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (39)) + (Prims.of_int (41)) + (Prims.of_int (39)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Prims.strcat "\n" uu___6)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (39)) + (Prims.of_int (34)) + (Prims.of_int (39)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat uu___3 uu___5)))) + uu___3) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" @@ -42,84 +106,17 @@ let (debug : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (39)) (Prims.of_int (7)) (Prims.of_int (39)) (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (39)) - (Prims.of_int (16)) - (Prims.of_int (39)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (39)) - (Prims.of_int (15)) - (Prims.of_int (39)) - (Prims.of_int (47))))) - (Obj.magic (Pulse_Typing_Env.print_context g)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (39)) - (Prims.of_int (34)) - (Prims.of_int (39)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (39)) - (Prims.of_int (41)) - (Prims.of_int (39)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic (msg ())) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "\n" - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat uu___ uu___1)))) - uu___))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> Obj.magic - (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (FStar_Tactics_V2_Builtins.print uu___2)) + uu___2))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())))) - uu___) + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> ())))) + uu___1) let (check_ln : Pulse_Typing_Env.env -> Prims.string -> @@ -129,6 +126,23 @@ let (check_ln : fun g -> fun label -> fun t -> + let uu___ = + let uu___1 = FStar_Tactics_CheckLN.check_ln t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (42)) (Prims.of_int (9)) + (Prims.of_int (42)) (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (42)) (Prims.of_int (5)) + (Prims.of_int (42)) (Prims.of_int (29))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> Prims.op_Negation uu___2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -139,227 +153,205 @@ let (check_ln : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (42)) (Prims.of_int (2)) (Prims.of_int (47)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (42)) (Prims.of_int (9)) - (Prims.of_int (42)) (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (42)) (Prims.of_int (5)) - (Prims.of_int (42)) (Prims.of_int (29))))) - (Obj.magic (FStar_Tactics_CheckLN.check_ln t)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.op_Negation uu___)))) - (fun uu___ -> - (fun uu___ -> - if uu___ + (Prims.of_int (5))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + if uu___1 then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) (Prims.of_int (43)) - (Prims.of_int (47)) (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) (Prims.of_int (4)) - (Prims.of_int (47)) (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = + Pulse_PP.pp Pulse_PP.printable_string label in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) + (Prims.of_int (45)) + (Prims.of_int (41)) + (Prims.of_int (45)) + (Prims.of_int (49))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (45)) - (Prims.of_int (6)) - (Prims.of_int (45)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (45)) + (Prims.of_int (6)) + (Prims.of_int (45)) + (Prims.of_int (49))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text + "Aborting before calling") + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (45)) (Prims.of_int (6)) + (Prims.of_int (45)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) + (Prims.of_int (43)) + (Prims.of_int (47)) (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + let uu___8 = + let uu___9 = + Pulse_PP.pp + Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (45)) - (Prims.of_int (41)) - (Prims.of_int (45)) - (Prims.of_int (49))))) + (Prims.of_int (46)) + (Prims.of_int (33)) + (Prims.of_int (46)) + (Prims.of_int (37))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (45)) - (Prims.of_int (6)) - (Prims.of_int (45)) - (Prims.of_int (49))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_string - label)) - (fun uu___1 -> + (Prims.of_int (46)) + (Prims.of_int (22)) + (Prims.of_int (46)) + (Prims.of_int (37))))) + (Obj.magic uu___9) + (fun uu___10 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___11 -> FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "Aborting before calling") - uu___1)))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (46)) - (Prims.of_int (6)) - (Prims.of_int (46)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (43)) - (Prims.of_int (43)) - (Prims.of_int (47)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (46)) - (Prims.of_int (22)) - (Prims.of_int (46)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (46)) - (Prims.of_int (6)) - (Prims.of_int (46)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (46)) - (Prims.of_int (33)) - (Prims.of_int (46)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (46)) - (Prims.of_int (22)) - (Prims.of_int (46)) - (Prims.of_int (37))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.equals - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> - FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "term") - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - [uu___2])))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___1 - :: uu___2)))) uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - (Pulse_PP.text - "Failure: not locally nameless!") - :: uu___1)))) - (fun uu___1 -> - (fun uu___1 -> + FStar_Pprint.equals + uu___10)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (46)) + (Prims.of_int (22)) + (Prims.of_int (46)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (46)) + (Prims.of_int (6)) + (Prims.of_int (46)) + (Prims.of_int (37))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text "term") + uu___9)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (46)) + (Prims.of_int (6)) + (Prims.of_int (46)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) + (Prims.of_int (43)) + (Prims.of_int (47)) + (Prims.of_int (5))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> [uu___8])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) + (Prims.of_int (43)) + (Prims.of_int (47)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) + (Prims.of_int (43)) + (Prims.of_int (47)) + (Prims.of_int (5))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___5 :: uu___7)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) (Prims.of_int (43)) + (Prims.of_int (47)) (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) (Prims.of_int (43)) + (Prims.of_int (47)) (Prims.of_int (5))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + (Pulse_PP.text + "Failure: not locally nameless!") + :: uu___4)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) (Prims.of_int (43)) + (Prims.of_int (47)) (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (43)) (Prims.of_int (4)) + (Prims.of_int (47)) (Prims.of_int (5))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term t)) - uu___1)) uu___1))) + uu___3)) uu___3))) else Obj.magic (Obj.repr - (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> ())))) - uu___) + (FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> ())))) + uu___1) let (rtb_core_compute_term_type : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -371,6 +363,7 @@ let (rtb_core_compute_term_type : fun g -> fun f -> fun e -> + let uu___ = check_ln g "rtb_compute_term_type" e in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -381,10 +374,82 @@ let (rtb_core_compute_term_type : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (51)) (Prims.of_int (2)) (Prims.of_int (56)) - (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_compute_term_type" e)) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (5))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + debug g + (fun uu___3 -> + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string e in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (54)) (Prims.of_int (10)) + (Prims.of_int (54)) (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (52)) (Prims.of_int (4)) + (Prims.of_int (54)) (Prims.of_int (30))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term e) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (53)) + (Prims.of_int (10)) + (Prims.of_int (53)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + Prims.strcat + (Prims.strcat "(" + (Prims.strcat uu___8 + ") Calling core_check_term on ")) + (Prims.strcat x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (52)) + (Prims.of_int (4)) + (Prims.of_int (54)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (52)) + (Prims.of_int (4)) + (Prims.of_int (54)) + (Prims.of_int (30))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 uu___5)))) + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -397,89 +462,15 @@ let (rtb_core_compute_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (54)) (Prims.of_int (32)) (Prims.of_int (56)) (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (54)) - (Prims.of_int (10)) - (Prims.of_int (54)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (52)) - (Prims.of_int (4)) - (Prims.of_int (54)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - e)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (52)) - (Prims.of_int (4)) - (Prims.of_int (54)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (52)) - (Prims.of_int (4)) - (Prims.of_int (54)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (53)) - (Prims.of_int (10)) - (Prims.of_int (53)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - e))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - uu___3 - ") Calling core_check_term on ")) - (Prims.strcat x - ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> uu___3 uu___2)))) - uu___2)))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___5 -> + FStar_Tactics_V2_Builtins.core_compute_term_type + f e) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -498,15 +489,10 @@ let (rtb_core_compute_term_type : (Prims.of_int (6)) (Prims.of_int (55)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context g) - (fun uu___2 -> - FStar_Tactics_V2_Builtins.core_compute_term_type - f e))) + (Obj.magic uu___4) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> res)))) uu___1))) uu___) + (fun uu___5 -> res)))) uu___3))) uu___1) let (rtb_tc_term : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -519,6 +505,7 @@ let (rtb_tc_term : fun g -> fun f -> fun e -> + let uu___ = check_ln g "rtb_tc_term" e in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -530,9 +517,15 @@ let (rtb_tc_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (60)) (Prims.of_int (29)) (Prims.of_int (67)) (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_tc_term" e)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_RuntimeUtils.deep_transform_to_unary_applications + e)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -545,12 +538,92 @@ let (rtb_tc_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (62)) (Prims.of_int (2)) (Prims.of_int (67)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.deep_transform_to_unary_applications - e)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun e1 -> + let uu___3 = + debug g + (fun uu___4 -> + let uu___5 = + FStar_Tactics_V2_Builtins.term_to_string + e1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (65)) + (Prims.of_int (6)) + (Prims.of_int (65)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (63)) + (Prims.of_int (4)) + (Prims.of_int (65)) + (Prims.of_int (26))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term + e1) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (64)) + (Prims.of_int (6)) + (Prims.of_int (64)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x -> + Prims.strcat + (Prims.strcat "(" + (Prims.strcat + uu___9 + ") Calling tc_term on ")) + (Prims.strcat x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (63)) + (Prims.of_int (4)) + (Prims.of_int (65)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (63)) + (Prims.of_int (4)) + (Prims.of_int (65)) + (Prims.of_int (26))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + uu___8 uu___6)))) + uu___6)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -569,91 +642,15 @@ let (rtb_tc_term : (Prims.of_int (28)) (Prims.of_int (67)) (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (65)) - (Prims.of_int (6)) - (Prims.of_int (65)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (63)) - (Prims.of_int (4)) - (Prims.of_int (65)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - e1)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (63)) - (Prims.of_int (4)) - (Prims.of_int (65)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (63)) - (Prims.of_int (4)) - (Prims.of_int (65)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (64)) - (Prims.of_int (6)) - (Prims.of_int (64)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - e1))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - fun x -> - Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - uu___3 - ") Calling tc_term on ")) - (Prims.strcat - x ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2)))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___6 -> + FStar_Tactics_V2_Builtins.tc_term + f e1) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -672,17 +669,11 @@ let (rtb_tc_term : (Prims.of_int (6)) (Prims.of_int (66)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context - g) - (fun uu___2 -> - FStar_Tactics_V2_Builtins.tc_term - f e1))) + (Obj.magic uu___5) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> res)))) uu___1))) - uu___1))) uu___) + (fun uu___6 -> res)))) uu___4))) + uu___3))) uu___1) let (rtb_universe_of : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -694,6 +685,7 @@ let (rtb_universe_of : fun g -> fun f -> fun e -> + let uu___ = check_ln g "rtb_universe_of" e in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -704,10 +696,82 @@ let (rtb_universe_of : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (71)) (Prims.of_int (2)) (Prims.of_int (76)) - (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_universe_of" e)) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (5))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + debug g + (fun uu___3 -> + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string e in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (74)) (Prims.of_int (6)) + (Prims.of_int (74)) (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (72)) (Prims.of_int (4)) + (Prims.of_int (74)) (Prims.of_int (26))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term e) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (73)) + (Prims.of_int (6)) + (Prims.of_int (73)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + Prims.strcat + (Prims.strcat "(" + (Prims.strcat uu___8 + ") Calling universe_of on ")) + (Prims.strcat x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (72)) + (Prims.of_int (4)) + (Prims.of_int (74)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (72)) + (Prims.of_int (4)) + (Prims.of_int (74)) + (Prims.of_int (26))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 uu___5)))) + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -720,306 +784,159 @@ let (rtb_universe_of : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (74)) (Prims.of_int (28)) (Prims.of_int (76)) (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (74)) - (Prims.of_int (6)) - (Prims.of_int (74)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (72)) - (Prims.of_int (4)) - (Prims.of_int (74)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - e)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (72)) - (Prims.of_int (4)) - (Prims.of_int (74)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (72)) - (Prims.of_int (4)) - (Prims.of_int (74)) - (Prims.of_int (26))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (73)) - (Prims.of_int (6)) - (Prims.of_int (73)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - e))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - uu___3 - ") Calling universe_of on ")) - (Prims.strcat x - ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> uu___3 uu___2)))) - uu___2)))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (75)) - (Prims.of_int (12)) - (Prims.of_int (75)) - (Prims.of_int (74))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (75)) - (Prims.of_int (6)) - (Prims.of_int (75)) - (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context g) - (fun uu___2 -> - FStar_Tactics_V2_Builtins.universe_of - f e))) - (fun res -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> res)))) uu___1))) uu___) -let (rtb_check_subtyping : - Pulse_Typing_Env.env -> - Pulse_Syntax_Base.term -> - Pulse_Syntax_Base.term -> - (((unit, unit, unit) Pulse_Typing.subtyping_token - FStar_Pervasives_Native.option * FStar_Issue.issue Prims.list), - unit) FStar_Tactics_Effect.tac_repr) - = - fun g -> - fun t1 -> - fun t2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (79)) (Prims.of_int (2)) (Prims.of_int (79)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (80)) (Prims.of_int (2)) (Prims.of_int (88)) - (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_check_subtyping.t1" t1)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (80)) (Prims.of_int (2)) - (Prims.of_int (80)) (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (81)) (Prims.of_int (2)) - (Prims.of_int (88)) (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_check_subtyping.t2" t2)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___5 -> + FStar_Tactics_V2_Builtins.universe_of f e) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (81)) - (Prims.of_int (2)) - (Prims.of_int (86)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (86)) - (Prims.of_int (31)) - (Prims.of_int (88)) - (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (86)) - (Prims.of_int (8)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t2)) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (85)) - (Prims.of_int (8)) - (Prims.of_int (85)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t1)) - (fun uu___4 -> - (fun uu___4 -> - Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (75)) + (Prims.of_int (12)) + (Prims.of_int (75)) + (Prims.of_int (74))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (75)) + (Prims.of_int (6)) + (Prims.of_int (75)) + (Prims.of_int (9))))) + (Obj.magic uu___4) + (fun res -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> res)))) uu___3))) uu___1) +let (rtb_check_subtyping : + Pulse_Typing_Env.env -> + Pulse_Syntax_Base.term -> + Pulse_Syntax_Base.term -> + (((unit, unit, unit) Pulse_Typing.subtyping_token + FStar_Pervasives_Native.option * FStar_Issue.issue Prims.list), + unit) FStar_Tactics_Effect.tac_repr) + = + fun g -> + fun t1 -> + fun t2 -> + let uu___ = check_ln g "rtb_check_subtyping.t1" t1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (79)) (Prims.of_int (2)) (Prims.of_int (79)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (80)) (Prims.of_int (2)) (Prims.of_int (88)) + (Prims.of_int (5))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = check_ln g "rtb_check_subtyping.t2" t2 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (80)) (Prims.of_int (2)) + (Prims.of_int (80)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (81)) (Prims.of_int (2)) + (Prims.of_int (88)) (Prims.of_int (5))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + debug g + (fun uu___5 -> + let uu___6 = + Pulse_Syntax_Printer.term_to_string t2 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (86)) + (Prims.of_int (8)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + Pulse_Syntax_Printer.term_to_string + t1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (85)) + (Prims.of_int (8)) + (Prims.of_int (85)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term + t2) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (84)) + (Prims.of_int (8)) + (Prims.of_int (84)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic uu___12) + (fun uu___13 -> + (fun uu___13 -> + let uu___14 = + let uu___15 = + FStar_Tactics_V2_Builtins.range_to_string ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (84)) - (Prims.of_int (8)) - (Prims.of_int (84)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - t2))) - (fun - uu___5 -> - (fun - uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (82)) - (Prims.of_int (4)) - (Prims.of_int (86)) - (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + Pulse_RuntimeUtils.range_of_term + t1) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" @@ -1027,7 +944,7 @@ let (rtb_check_subtyping : (Prims.of_int (8)) (Prims.of_int (83)) (Prims.of_int (49))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "FStar.Printf.fst" @@ -1035,15 +952,15 @@ let (rtb_check_subtyping : (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - t1))) - (fun - uu___6 -> + (Obj.magic + uu___15) + (fun + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___17 + -> fun x -> fun x1 -> fun x2 -> @@ -1053,7 +970,7 @@ let (rtb_check_subtyping : (Prims.strcat "(" (Prims.strcat - uu___6 + uu___16 ", ")) (Prims.strcat x @@ -1061,30 +978,114 @@ let (rtb_check_subtyping : (Prims.strcat x1 " <: ")) (Prims.strcat - x2 ""))))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___6 - uu___5)))) - uu___5))) - (fun - uu___5 -> + x2 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic + uu___14) + (fun + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - uu___4 uu___3)))) - uu___3)))) - (fun uu___2 -> - (fun uu___2 -> + uu___16 + -> + uu___15 + uu___13)))) + uu___13) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + uu___12 + uu___10)))) + uu___10) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (82)) + (Prims.of_int (4)) + (Prims.of_int (86)) + (Prims.of_int (29))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + uu___9 uu___7)))) + uu___7)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (81)) + (Prims.of_int (2)) + (Prims.of_int (86)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (86)) + (Prims.of_int (31)) + (Prims.of_int (88)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___7 -> + FStar_Tactics_V2_Builtins.check_subtyping + (Pulse_Typing.elab_env g) t1 + t2) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1103,18 +1104,11 @@ let (rtb_check_subtyping : (Prims.of_int (6)) (Prims.of_int (87)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context - g) - (fun uu___3 -> - FStar_Tactics_V2_Builtins.check_subtyping - (Pulse_Typing.elab_env - g) t1 t2))) + (Obj.magic uu___6) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> res)))) uu___2))) - uu___1))) uu___) + (fun uu___7 -> res)))) uu___5))) + uu___3))) uu___1) let (rtb_instantiate_implicits : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -1130,6 +1124,7 @@ let (rtb_instantiate_implicits : fun f -> fun t -> fun expected -> + let uu___ = check_ln g "rtb_instantiate_implicits" t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1141,9 +1136,33 @@ let (rtb_instantiate_implicits : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (92)) (Prims.of_int (2)) (Prims.of_int (103)) (Prims.of_int (12))))) - (Obj.magic (check_ln g "rtb_instantiate_implicits" t)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + debug g + (fun uu___3 -> + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (93)) (Prims.of_int (39)) + (Prims.of_int (93)) (Prims.of_int (59))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat + "Calling instantiate_implicits on " + (Prims.strcat uu___5 "")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1156,36 +1175,15 @@ let (rtb_instantiate_implicits : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (93)) (Prims.of_int (61)) (Prims.of_int (103)) (Prims.of_int (12))))) - (Obj.magic - (debug g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (93)) - (Prims.of_int (39)) - (Prims.of_int (93)) - (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - t)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat - "Calling instantiate_implicits on " - (Prims.strcat uu___2 "")))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_RuntimeUtils.deep_transform_to_unary_applications + t)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1204,12 +1202,15 @@ let (rtb_instantiate_implicits : (Prims.of_int (54)) (Prims.of_int (103)) (Prims.of_int (12))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_RuntimeUtils.deep_transform_to_unary_applications - t)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun t1 -> + let uu___5 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___6 -> + FStar_Tactics_V2_Builtins.instantiate_implicits + f t1 expected) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1228,64 +1229,26 @@ let (rtb_instantiate_implicits : (Prims.of_int (54)) (Prims.of_int (103)) (Prims.of_int (12))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context - g) - (fun uu___2 -> - FStar_Tactics_V2_Builtins.instantiate_implicits - f t1 expected))) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | (res, iss) -> (match res with | FStar_Pervasives_Native.None -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (99)) - (Prims.of_int (4)) - (Prims.of_int (99)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (100)) - (Prims.of_int (4)) - (Prims.of_int (100)) - (Prims.of_int (12))))) - (Obj.magic - ( - debug g - (fun - uu___3 -> - (fun - uu___3 -> + let uu___7 = + debug g + (fun uu___8 + -> + (fun + uu___8 -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> "Returned from instantiate_implicits: None"))) - uu___3))) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - (res, - iss)))) - | FStar_Pervasives_Native.Some - (uu___3, t2, - uu___4) - -> + uu___8) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1293,25 +1256,41 @@ let (rtb_instantiate_implicits : Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (102)) + (Prims.of_int (99)) (Prims.of_int (4)) - (Prims.of_int (102)) - (Prims.of_int (100))))) + (Prims.of_int (99)) + (Prims.of_int (66))))) (FStar_Sealed.seal ( Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (103)) + (Prims.of_int (100)) (Prims.of_int (4)) - (Prims.of_int (103)) + (Prims.of_int (100)) (Prims.of_int (12))))) (Obj.magic - ( - debug g + uu___7) + (fun uu___8 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - FStar_Tactics_Effect.tac_bind + uu___9 -> + (res, + iss)))) + | FStar_Pervasives_Native.Some + (uu___7, t2, + uu___8) + -> + let uu___9 = + debug g + (fun uu___10 + -> + let uu___11 + = + FStar_Tactics_V2_Builtins.term_to_string + t2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1329,26 +1308,51 @@ let (rtb_instantiate_implicits : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - t2)) + uu___11) (fun - uu___6 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___13 + -> Prims.strcat "Returned from instantiate_implicits: " (Prims.strcat - uu___6 "")))))) - (fun uu___5 + uu___12 + "")))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (102)) + (Prims.of_int (4)) + (Prims.of_int (102)) + (Prims.of_int (100))))) + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (103)) + (Prims.of_int (4)) + (Prims.of_int (103)) + (Prims.of_int (12))))) + (Obj.magic + uu___9) + (fun uu___10 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___11 + -> (res, iss)))))) - uu___2))) uu___2))) uu___1))) - uu___) + uu___6))) uu___5))) uu___3))) + uu___1) let (rtb_core_check_term : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -1364,6 +1368,7 @@ let (rtb_core_check_term : fun e -> fun eff -> fun t -> + let uu___ = check_ln g "rtb_core_check_term.e" e in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1375,9 +1380,10 @@ let (rtb_core_check_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (107)) (Prims.of_int (2)) (Prims.of_int (114)) (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_core_check_term.e" e)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = check_ln g "rtb_core_check_term.t" t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1390,140 +1396,87 @@ let (rtb_core_check_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (108)) (Prims.of_int (2)) (Prims.of_int (114)) (Prims.of_int (5))))) - (Obj.magic (check_ln g "rtb_core_check_term.t" t)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (108)) - (Prims.of_int (2)) - (Prims.of_int (112)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (112)) - (Prims.of_int (38)) - (Prims.of_int (114)) - (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (112)) - (Prims.of_int (16)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - t)) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (111)) - (Prims.of_int (16)) - (Prims.of_int (111)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - e)) - (fun uu___4 - -> - (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (109)) - (Prims.of_int (4)) - (Prims.of_int (112)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + debug g + (fun uu___5 -> + let uu___6 = + FStar_Tactics_V2_Builtins.term_to_string + t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (112)) + (Prims.of_int (16)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + FStar_Tactics_V2_Builtins.term_to_string + e in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (111)) + (Prims.of_int (16)) + (Prims.of_int (111)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term + e) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (110)) (Prims.of_int (16)) (Prims.of_int (110)) (Prims.of_int (56))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" (Prims.of_int (122)) (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - e))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> + (Obj.magic + uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 + -> fun x -> fun x1 -> Prims.strcat @@ -1531,28 +1484,91 @@ let (rtb_core_check_term : (Prims.strcat "(" (Prims.strcat - uu___5 + uu___13 ") Calling core_check_term on ")) (Prims.strcat x " and ")) (Prims.strcat - x1 ""))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - uu___4 - uu___3)))) - uu___3)))) - (fun uu___2 -> - (fun uu___2 -> + x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (Obj.magic + uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + uu___12 + uu___10)))) + uu___10) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (109)) + (Prims.of_int (4)) + (Prims.of_int (112)) + (Prims.of_int (36))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + uu___9 uu___7)))) + uu___7)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (108)) + (Prims.of_int (2)) + (Prims.of_int (112)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (112)) + (Prims.of_int (38)) + (Prims.of_int (114)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___7 -> + FStar_Tactics_V2_Builtins.core_check_term + f e t eff) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1571,86 +1587,109 @@ let (rtb_core_check_term : (Prims.of_int (6)) (Prims.of_int (113)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context - g) - (fun uu___3 -> - FStar_Tactics_V2_Builtins.core_check_term - f e t eff))) + (Obj.magic uu___6) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> res)))) - uu___2))) uu___1))) uu___) + (fun uu___7 -> res)))) + uu___5))) uu___3))) uu___1) let (rtb_core_check_term_at_type : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> FStar_Reflection_Types.term -> FStar_Reflection_Types.term -> - ((FStar_TypeChecker_Core.tot_or_ghost - FStar_Pervasives_Native.option * FStar_Issue.issue Prims.list), - unit) FStar_Tactics_Effect.tac_repr) - = - fun g -> - fun f -> - fun e -> - fun t -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (117)) (Prims.of_int (2)) - (Prims.of_int (121)) (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (121)) (Prims.of_int (38)) - (Prims.of_int (123)) (Prims.of_int (5))))) - (Obj.magic - (debug g - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (121)) (Prims.of_int (16)) - (Prims.of_int (121)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (118)) (Prims.of_int (4)) - (Prims.of_int (121)) (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string t)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (118)) - (Prims.of_int (4)) - (Prims.of_int (121)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (118)) - (Prims.of_int (4)) - (Prims.of_int (121)) - (Prims.of_int (36))))) - (Obj.magic + ((FStar_TypeChecker_Core.tot_or_ghost + FStar_Pervasives_Native.option * FStar_Issue.issue Prims.list), + unit) FStar_Tactics_Effect.tac_repr) + = + fun g -> + fun f -> + fun e -> + fun t -> + let uu___ = + debug g + (fun uu___1 -> + let uu___2 = FStar_Tactics_V2_Builtins.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (121)) (Prims.of_int (16)) + (Prims.of_int (121)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (118)) (Prims.of_int (4)) + (Prims.of_int (121)) (Prims.of_int (36))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + FStar_Tactics_V2_Builtins.term_to_string e in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (120)) + (Prims.of_int (16)) + (Prims.of_int (120)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (118)) (Prims.of_int (4)) + (Prims.of_int (121)) + (Prims.of_int (36))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term e) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (119)) + (Prims.of_int (16)) + (Prims.of_int (119)) + (Prims.of_int (56))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "(" + (Prims.strcat + uu___9 + ") Calling core_check_term_at_type on ")) + (Prims.strcat x + " and ")) + (Prims.strcat x1 ""))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (120)) - (Prims.of_int (16)) - (Prims.of_int (120)) + (Prims.of_int (118)) + (Prims.of_int (4)) + (Prims.of_int (121)) (Prims.of_int (36))))) (FStar_Sealed.seal (Obj.magic @@ -1660,78 +1699,53 @@ let (rtb_core_check_term_at_type : (Prims.of_int (4)) (Prims.of_int (121)) (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - e)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (118)) - (Prims.of_int (4)) - (Prims.of_int (121)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (118)) - (Prims.of_int (4)) - (Prims.of_int (121)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (119)) - (Prims.of_int (16)) - (Prims.of_int (119)) - (Prims.of_int (56))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - e))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - uu___3 - ") Calling core_check_term_at_type on ")) - (Prims.strcat - x " and ")) - (Prims.strcat - x1 ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> uu___8 uu___6)))) + uu___6) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (118)) + (Prims.of_int (4)) + (Prims.of_int (121)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (118)) + (Prims.of_int (4)) + (Prims.of_int (121)) + (Prims.of_int (36))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (117)) (Prims.of_int (2)) + (Prims.of_int (121)) (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (121)) (Prims.of_int (38)) + (Prims.of_int (123)) (Prims.of_int (5))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___3 -> + FStar_Tactics_V2_Builtins.core_check_term_at_type f + e t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1744,15 +1758,10 @@ let (rtb_core_check_term_at_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (122)) (Prims.of_int (6)) (Prims.of_int (122)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context g) - (fun uu___1 -> - FStar_Tactics_V2_Builtins.core_check_term_at_type - f e t))) + (Obj.magic uu___2) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> res)))) uu___) + (fun uu___3 -> res)))) uu___1) let (mk_squash0 : FStar_Reflection_Types.term -> FStar_Reflection_Types.term) = fun t -> @@ -1776,6 +1785,7 @@ let (rtb_check_prop_validity : fun sync -> fun f -> fun p -> + let uu___ = check_ln g "rtb_check_prop_validity" p in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1787,9 +1797,84 @@ let (rtb_check_prop_validity : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (135)) (Prims.of_int (2)) (Prims.of_int (149)) (Prims.of_int (65))))) - (Obj.magic (check_ln g "rtb_check_prop_validity" p)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + debug g + (fun uu___3 -> + let uu___4 = + FStar_Tactics_V2_Builtins.term_to_string p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (138)) (Prims.of_int (10)) + (Prims.of_int (138)) (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (136)) (Prims.of_int (4)) + (Prims.of_int (138)) (Prims.of_int (30))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + FStar_Tactics_V2_Builtins.range_to_string + (Pulse_RuntimeUtils.range_of_term p) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (137)) + (Prims.of_int (10)) + (Prims.of_int (137)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + Prims.strcat + (Prims.strcat "(" + (Prims.strcat uu___8 + ") Calling check_prop_validity on ")) + (Prims.strcat x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (136)) + (Prims.of_int (4)) + (Prims.of_int (138)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (136)) + (Prims.of_int (4)) + (Prims.of_int (138)) + (Prims.of_int (30))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 uu___5)))) + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1802,89 +1887,13 @@ let (rtb_check_prop_validity : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (138)) (Prims.of_int (32)) (Prims.of_int (149)) (Prims.of_int (65))))) - (Obj.magic - (debug g - (fun uu___1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (138)) - (Prims.of_int (10)) - (Prims.of_int (138)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (136)) - (Prims.of_int (4)) - (Prims.of_int (138)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string - p)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (136)) - (Prims.of_int (4)) - (Prims.of_int (138)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (136)) - (Prims.of_int (4)) - (Prims.of_int (138)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (137)) - (Prims.of_int (10)) - (Prims.of_int (137)) - (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.range_to_string - (Pulse_RuntimeUtils.range_of_term - p))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - uu___3 - ") Calling check_prop_validity on ")) - (Prims.strcat - x ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) uu___2)))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> mk_squash0 p)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1903,10 +1912,23 @@ let (rtb_check_prop_validity : (Prims.of_int (26)) (Prims.of_int (149)) (Prims.of_int (65))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> mk_squash0 p)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun sp -> + let uu___5 = + Pulse_RuntimeUtils.with_context + (Pulse_Typing_Env.get_context g) + (fun uu___6 -> + if sync + then + FStar_Tactics_V2_Derived.with_policy + FStar_Tactics_Types.ForceSMT + (fun uu___7 -> + FStar_Tactics_V2_Builtins.check_prop_validity + f sp) + else + FStar_Tactics_V2_Builtins.check_prop_validity + f sp) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1925,25 +1947,11 @@ let (rtb_check_prop_validity : (Prims.of_int (26)) (Prims.of_int (149)) (Prims.of_int (65))))) - (Obj.magic - (Pulse_RuntimeUtils.with_context - (Pulse_Typing_Env.get_context - g) - (fun uu___2 -> - if sync - then - FStar_Tactics_V2_Derived.with_policy - FStar_Tactics_Types.ForceSMT - (fun uu___3 -> - FStar_Tactics_V2_Builtins.check_prop_validity - f sp) - else - FStar_Tactics_V2_Builtins.check_prop_validity - f sp))) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with + (fun uu___7 -> + match uu___6 with | (res, issues) -> (match res with | FStar_Pervasives_Native.None @@ -1955,7 +1963,7 @@ let (rtb_check_prop_validity : ((FStar_Pervasives_Native.Some ()), issues)))))) - uu___2))) uu___1))) uu___) + uu___5))) uu___3))) uu___1) let (exn_as_issue : Prims.exn -> FStar_Issue.issue) = fun e -> FStar_Issue.mk_issue_doc "Error" @@ -1971,6 +1979,7 @@ let catch_all : unit) FStar_Tactics_Effect.tac_repr = fun f -> + let uu___ = FStar_Tactics_V2_Builtins.catch f in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1981,12 +1990,11 @@ let catch_all : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (156)) (Prims.of_int (4)) (Prims.of_int (159)) - (Prims.of_int (16))))) - (Obj.magic (FStar_Tactics_V2_Builtins.catch f)) - (fun uu___ -> + (Prims.of_int (16))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | FStar_Pervasives.Inl exn -> (FStar_Pervasives_Native.None, [exn_as_issue exn]) | FStar_Pervasives.Inr v -> v)) @@ -1995,6 +2003,7 @@ let (readback_failure : (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun s -> + let uu___ = FStar_Tactics_V2_Builtins.term_to_string s in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2005,13 +2014,12 @@ let (readback_failure : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (162)) (Prims.of_int (2)) (Prims.of_int (163)) - (Prims.of_int (37))))) - (Obj.magic (FStar_Tactics_V2_Builtins.term_to_string s)) - (fun uu___ -> + (Prims.of_int (37))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> Prims.strcat "Internal error: failed to readback F* term " - (Prims.strcat uu___ ""))) + (Prims.strcat uu___1 ""))) let (ill_typed_term : Pulse_Syntax_Base.term -> Pulse_Syntax_Base.term FStar_Pervasives_Native.option -> @@ -2024,6 +2032,25 @@ let (ill_typed_term : fun got_typ -> match (expected_typ, got_typ) with | (FStar_Pervasives_Native.None, uu___) -> + let uu___1 = + let uu___2 = Pulse_PP.pp Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (169)) (Prims.of_int (32)) + (Prims.of_int (169)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (169)) (Prims.of_int (5)) + (Prims.of_int (169)) (Prims.of_int (36))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pprint.op_Hat_Hat + (Pulse_PP.text "Ill-typed term: ") uu___3)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2035,205 +2062,216 @@ let (ill_typed_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (169)) (Prims.of_int (4)) (Prims.of_int (169)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (169)) (Prims.of_int (32)) - (Prims.of_int (169)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (169)) (Prims.of_int (5)) - (Prims.of_int (169)) (Prims.of_int (36))))) - (Obj.magic (Pulse_PP.pp Pulse_PP.printable_term t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat - (Pulse_PP.text "Ill-typed term: ") uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> [uu___1])) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> [uu___2])) | (FStar_Pervasives_Native.Some ty, FStar_Pervasives_Native.None) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (5)) - (Prims.of_int (172)) (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (4)) - (Prims.of_int (172)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (5)) - (Prims.of_int (171)) (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (5)) - (Prims.of_int (172)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___ = + let uu___1 = + let uu___2 = Pulse_PP.pp Pulse_PP.printable_term ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (171)) (Prims.of_int (47)) + (Prims.of_int (171)) (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (171)) (Prims.of_int (5)) + (Prims.of_int (171)) (Prims.of_int (54))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pprint.prefix (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "Expected term of type") uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (171)) (Prims.of_int (5)) + (Prims.of_int (171)) (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (171)) (Prims.of_int (5)) + (Prims.of_int (172)) (Prims.of_int (40))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = Pulse_PP.pp Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (47)) - (Prims.of_int (171)) (Prims.of_int (54))))) + (Prims.of_int (172)) (Prims.of_int (34)) + (Prims.of_int (172)) (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) (Prims.of_int (5)) - (Prims.of_int (171)) (Prims.of_int (54))))) - (Obj.magic (Pulse_PP.pp Pulse_PP.printable_term ty)) - (fun uu___ -> + (Prims.of_int (172)) (Prims.of_int (5)) + (Prims.of_int (172)) (Prims.of_int (40))))) + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___6 -> FStar_Pprint.prefix (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text "Expected term of type") - uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (172)) - (Prims.of_int (5)) - (Prims.of_int (172)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (171)) - (Prims.of_int (5)) - (Prims.of_int (172)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (172)) - (Prims.of_int (34)) - (Prims.of_int (172)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (172)) - (Prims.of_int (5)) - (Prims.of_int (172)) - (Prims.of_int (40))))) - (Obj.magic - (Pulse_PP.pp Pulse_PP.printable_term - t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text "got term") - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Slash_Hat uu___ - uu___1)))) uu___))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> [uu___])) - | (FStar_Pervasives_Native.Some ty, FStar_Pervasives_Native.Some ty') - -> + Prims.int_one (Pulse_PP.text "got term") + uu___5)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (172)) (Prims.of_int (5)) + (Prims.of_int (172)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (171)) (Prims.of_int (5)) + (Prims.of_int (172)) (Prims.of_int (40))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Slash_Hat uu___2 + uu___4)))) uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (5)) - (Prims.of_int (176)) (Prims.of_int (41))))) + (Prims.of_int (171)) (Prims.of_int (5)) + (Prims.of_int (172)) (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (4)) - (Prims.of_int (176)) (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (5)) - (Prims.of_int (174)) (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (5)) - (Prims.of_int (176)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (47)) - (Prims.of_int (174)) (Prims.of_int (54))))) + (Prims.of_int (171)) (Prims.of_int (4)) + (Prims.of_int (172)) (Prims.of_int (41))))) + (Obj.magic uu___) + (fun uu___1 -> + FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> [uu___1])) + | (FStar_Pervasives_Native.Some ty, FStar_Pervasives_Native.Some ty') + -> + let uu___ = + let uu___1 = + let uu___2 = Pulse_PP.pp Pulse_PP.printable_term ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (47)) + (Prims.of_int (174)) (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (5)) + (Prims.of_int (174)) (Prims.of_int (54))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pprint.prefix (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "Expected term of type") uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (5)) + (Prims.of_int (174)) (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (5)) + (Prims.of_int (176)) (Prims.of_int (41))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = Pulse_PP.pp Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (175)) (Prims.of_int (34)) + (Prims.of_int (175)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (175)) (Prims.of_int (5)) + (Prims.of_int (175)) (Prims.of_int (40))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.prefix (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "got term") uu___6)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) (Prims.of_int (5)) - (Prims.of_int (174)) (Prims.of_int (54))))) - (Obj.magic (Pulse_PP.pp Pulse_PP.printable_term ty)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pprint.prefix (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text "Expected term of type") - uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (175)) - (Prims.of_int (5)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (174)) - (Prims.of_int (5)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (Obj.magic + "Pulse.Checker.Pure.fst" + (Prims.of_int (175)) (Prims.of_int (5)) + (Prims.of_int (175)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (175)) (Prims.of_int (5)) + (Prims.of_int (176)) (Prims.of_int (41))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + Pulse_PP.pp Pulse_PP.printable_term ty' in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (176)) + (Prims.of_int (33)) + (Prims.of_int (176)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (176)) + (Prims.of_int (5)) + (Prims.of_int (176)) + (Prims.of_int (41))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "of type") + uu___8)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (175)) + (Prims.of_int (176)) (Prims.of_int (5)) - (Prims.of_int (175)) - (Prims.of_int (40))))) + (Prims.of_int (176)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2242,99 +2280,46 @@ let (ill_typed_term : (Prims.of_int (5)) (Prims.of_int (176)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (175)) - (Prims.of_int (34)) - (Prims.of_int (175)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (175)) - (Prims.of_int (5)) - (Prims.of_int (175)) - (Prims.of_int (40))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term t)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "got term") uu___1)))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (176)) - (Prims.of_int (5)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (175)) - (Prims.of_int (5)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (176)) - (Prims.of_int (33)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (176)) - (Prims.of_int (5)) - (Prims.of_int (176)) - (Prims.of_int (41))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - ty')) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "of type") - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___1 uu___2)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Slash_Hat uu___ - uu___1)))) uu___))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> [uu___])) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.op_Hat_Slash_Hat + uu___5 uu___7)))) uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (175)) (Prims.of_int (5)) + (Prims.of_int (176)) (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (5)) + (Prims.of_int (176)) (Prims.of_int (41))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Slash_Hat uu___2 + uu___4)))) uu___2) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (5)) + (Prims.of_int (176)) (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (174)) (Prims.of_int (4)) + (Prims.of_int (176)) (Prims.of_int (42))))) + (Obj.magic uu___) + (fun uu___1 -> + FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> [uu___1])) let maybe_fail_doc : 'uuuuu . FStar_Issue.issue Prims.list -> @@ -2347,6 +2332,15 @@ let maybe_fail_doc : fun g -> fun rng -> fun doc -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + FStar_List_Tot_Base.existsb + (fun i -> + ((FStar_Issue.level_of_issue i) = "Error") && + (FStar_Pervasives_Native.uu___is_Some + (FStar_Issue.range_of_issue i))) issues)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2358,17 +2352,18 @@ let maybe_fail_doc : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (187)) (Prims.of_int (2)) (Prims.of_int (190)) (Prims.of_int (32))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_List_Tot_Base.existsb - (fun i -> - ((FStar_Issue.level_of_issue i) = "Error") && - (FStar_Pervasives_Native.uu___is_Some - (FStar_Issue.range_of_issue i))) issues)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun has_localized_error -> if has_localized_error then + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + FStar_Pprint.pretty_string + Pulse_RuntimeUtils.float_one + (Prims.of_int (80)) (FStar_Pprint.concat doc))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2381,12 +2376,7 @@ let maybe_fail_doc : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (189)) (Prims.of_int (7)) (Prims.of_int (189)) (Prims.of_int (56))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - FStar_Pprint.pretty_string - Pulse_RuntimeUtils.float_one - (Prims.of_int (80)) - (FStar_Pprint.concat doc))) + (Obj.magic uu___1) (fun message -> FStar_Tactics_V2_Derived.fail_at message (FStar_Pervasives_Native.Some @@ -2394,7 +2384,7 @@ let maybe_fail_doc : else Obj.magic (Pulse_Typing_Env.fail_doc g - (FStar_Pervasives_Native.Some rng) doc)) uu___) + (FStar_Pervasives_Native.Some rng) doc)) uu___1) let (instantiate_term_implicits : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -2405,6 +2395,10 @@ let (instantiate_term_implicits : fun g -> fun t0 -> fun expected -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2416,10 +2410,13 @@ let (instantiate_term_implicits : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (193)) (Prims.of_int (23)) (Prims.of_int (215)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun f -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> Pulse_RuntimeUtils.range_of_term t0)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2432,10 +2429,36 @@ let (instantiate_term_implicits : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (194)) (Prims.of_int (34)) (Prims.of_int (215)) (Prims.of_int (14))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_RuntimeUtils.range_of_term t0)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun rng -> + let uu___2 = + let uu___3 = + Pulse_Typing_Env.get_range g + (FStar_Pervasives_Native.Some rng) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (195)) + (Prims.of_int (29)) + (Prims.of_int (195)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (195)) + (Prims.of_int (10)) + (Prims.of_int (195)) + (Prims.of_int (70))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_RuntimeUtils.env_set_range f + uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2454,34 +2477,14 @@ let (instantiate_term_implicits : (Prims.of_int (73)) (Prims.of_int (215)) (Prims.of_int (14))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (195)) - (Prims.of_int (29)) - (Prims.of_int (195)) - (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (195)) - (Prims.of_int (10)) - (Prims.of_int (195)) - (Prims.of_int (70))))) - (Obj.magic - (Pulse_Typing_Env.get_range g - (FStar_Pervasives_Native.Some rng))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.env_set_range - f uu___)))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun f1 -> + let uu___3 = + catch_all + (fun uu___4 -> + rtb_instantiate_implicits g f1 + t0 expected) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2500,15 +2503,14 @@ let (instantiate_term_implicits : (Prims.of_int (73)) (Prims.of_int (215)) (Prims.of_int (14))))) - (Obj.magic - (catch_all - (fun uu___ -> - rtb_instantiate_implicits - g f1 t0 expected))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (topt, issues) -> + let uu___5 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2527,36 +2529,57 @@ let (instantiate_term_implicits : (Prims.of_int (2)) (Prims.of_int (215)) (Prims.of_int (14))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> match topt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_PP.pp + Pulse_PP.printable_term + t0 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (202)) - (Prims.of_int (15)) - (Prims.of_int (205)) - (Prims.of_int (13))))) + (Prims.of_int (204)) + (Prims.of_int (24)) + (Prims.of_int (204)) + (Prims.of_int (31))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (201)) - (Prims.of_int (4)) - (Prims.of_int (205)) - (Prims.of_int (13))))) + (Prims.of_int (203)) + (Prims.of_int (14)) + (Prims.of_int (204)) + (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Could not check term:") + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2574,54 +2597,43 @@ let (instantiate_term_implicits : (Prims.of_int (205)) (Prims.of_int (13))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + [uu___9])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (204)) - (Prims.of_int (24)) - (Prims.of_int (204)) - (Prims.of_int (31))))) + (Prims.of_int (202)) + (Prims.of_int (15)) + (Prims.of_int (205)) + (Prims.of_int (13))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (203)) - (Prims.of_int (14)) - (Prims.of_int (204)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t0)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix + (Prims.of_int (201)) (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "Could not check term:") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - [uu___2])))) + (Prims.of_int (205)) + (Prims.of_int (13))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> Obj.magic (maybe_fail_doc issues g rng - uu___2)) - uu___2))) + uu___8)) + uu___8))) | FStar_Pervasives_Native.Some (namedvs, t, ty) -> @@ -2634,25 +2646,48 @@ let (instantiate_term_implicits : Prims.int_zero then Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_PP.pp + Pulse_PP.printable_term + t0 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (212)) - (Prims.of_int (14)) - (Prims.of_int (214)) - (Prims.of_int (9))))) + (Prims.of_int (213)) + (Prims.of_int (52)) + (Prims.of_int (213)) + (Prims.of_int (59))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (211)) - (Prims.of_int (6)) - (Prims.of_int (214)) - (Prims.of_int (9))))) + (Prims.of_int (213)) + (Prims.of_int (10)) + (Prims.of_int (213)) + (Prims.of_int (59))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Could not check term:") + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2670,62 +2705,51 @@ let (instantiate_term_implicits : (Prims.of_int (214)) (Prims.of_int (9))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + [uu___9])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (213)) - (Prims.of_int (52)) - (Prims.of_int (213)) - (Prims.of_int (59))))) + (Prims.of_int (212)) + (Prims.of_int (14)) + (Prims.of_int (214)) + (Prims.of_int (9))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (213)) - (Prims.of_int (10)) - (Prims.of_int (213)) - (Prims.of_int (59))))) + (Prims.of_int (211)) + (Prims.of_int (6)) + (Prims.of_int (214)) + (Prims.of_int (9))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t0)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "Could not check term:") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac + uu___7) (fun - uu___3 -> - [uu___2])))) + uu___8 -> (fun - uu___2 -> - (fun - uu___2 -> + uu___8 -> Obj.magic (maybe_fail_doc [] g rng - uu___2)) - uu___2)) + uu___8)) + uu___8)) else Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> (t, ty)))))) - uu___1))) - uu___))) uu___))) uu___))) - uu___) + uu___6))) + uu___4))) uu___3))) uu___2))) + uu___1) let (instantiate_term_implicits_uvs : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -2735,6 +2759,10 @@ let (instantiate_term_implicits_uvs : = fun g -> fun t0 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2746,10 +2774,13 @@ let (instantiate_term_implicits_uvs : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (218)) (Prims.of_int (23)) (Prims.of_int (246)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun f -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> Pulse_RuntimeUtils.range_of_term t0)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2762,10 +2793,36 @@ let (instantiate_term_implicits_uvs : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (219)) (Prims.of_int (34)) (Prims.of_int (246)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_RuntimeUtils.range_of_term t0)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun rng -> + let uu___2 = + let uu___3 = + Pulse_Typing_Env.get_range g + (FStar_Pervasives_Native.Some rng) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (220)) + (Prims.of_int (29)) + (Prims.of_int (220)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (220)) + (Prims.of_int (10)) + (Prims.of_int (220)) + (Prims.of_int (70))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_RuntimeUtils.env_set_range f + uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2784,34 +2841,14 @@ let (instantiate_term_implicits_uvs : (Prims.of_int (73)) (Prims.of_int (246)) (Prims.of_int (20))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (220)) - (Prims.of_int (29)) - (Prims.of_int (220)) - (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (220)) - (Prims.of_int (10)) - (Prims.of_int (220)) - (Prims.of_int (70))))) - (Obj.magic - (Pulse_Typing_Env.get_range g - (FStar_Pervasives_Native.Some rng))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_RuntimeUtils.env_set_range - f uu___)))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun f1 -> + let uu___3 = + catch_all + (fun uu___4 -> + rtb_instantiate_implicits g f1 t0 + FStar_Pervasives_Native.None) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2830,16 +2867,14 @@ let (instantiate_term_implicits_uvs : (Prims.of_int (73)) (Prims.of_int (246)) (Prims.of_int (20))))) - (Obj.magic - (catch_all - (fun uu___ -> - rtb_instantiate_implicits g - f1 t0 - FStar_Pervasives_Native.None))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (topt, issues) -> + let uu___5 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2858,35 +2893,54 @@ let (instantiate_term_implicits_uvs : (Prims.of_int (2)) (Prims.of_int (246)) (Prims.of_int (20))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> match topt with | FStar_Pervasives_Native.None -> - Obj.magic - ( + let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_PP.pp + Pulse_PP.printable_term + t0 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (227)) - (Prims.of_int (15)) - (Prims.of_int (230)) - (Prims.of_int (13))))) + (Prims.of_int (229)) + (Prims.of_int (24)) + (Prims.of_int (229)) + (Prims.of_int (31))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (226)) - (Prims.of_int (4)) - (Prims.of_int (230)) - (Prims.of_int (13))))) + (Prims.of_int (228)) + (Prims.of_int (14)) + (Prims.of_int (229)) + (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Could not check term:") + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2904,94 +2958,68 @@ let (instantiate_term_implicits_uvs : (Prims.of_int (230)) (Prims.of_int (13))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + [uu___9])) in + Obj.magic + ( + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (229)) - (Prims.of_int (24)) - (Prims.of_int (229)) - (Prims.of_int (31))))) + (Prims.of_int (227)) + (Prims.of_int (15)) + (Prims.of_int (230)) + (Prims.of_int (13))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (228)) - (Prims.of_int (14)) - (Prims.of_int (229)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t0)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix + (Prims.of_int (226)) (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "Could not check term:") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - [uu___2])))) + (Prims.of_int (230)) + (Prims.of_int (13))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> Obj.magic (maybe_fail_doc issues g rng - uu___2)) - uu___2)) + uu___8)) + uu___8)) | FStar_Pervasives_Native.Some (namedvs, t, ty) -> - Obj.magic - ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (237)) - (Prims.of_int (6)) - (Prims.of_int (245)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (232)) - (Prims.of_int (28)) - (Prims.of_int (246)) - (Prims.of_int (20))))) - (Obj.magic - (FStar_Tactics_Util.fold_left + let uu___7 + = + FStar_Tactics_Util.fold_left (fun - uu___3 -> + uu___9 -> fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> fun - uu___3 -> + uu___9 -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___10 + -> match - (uu___2, - uu___3) + (uu___8, + uu___9) with | (FStar_Pervasives.Mkdtuple3 @@ -3062,20 +3090,41 @@ let (instantiate_term_implicits_uvs : = rng } }))]))))) - uu___3 - uu___2) + uu___9 + uu___8) (FStar_Pervasives.Mkdtuple3 ((Pulse_Typing_Env.mk_env (Pulse_Typing_Env.fstar_env g)), t, ty)) - namedvs)) + namedvs in + Obj.magic + ( + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (237)) + (Prims.of_int (6)) + (Prims.of_int (245)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (232)) + (Prims.of_int (28)) + (Prims.of_int (246)) + (Prims.of_int (20))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - match uu___2 + uu___9 -> + match uu___8 with | FStar_Pervasives.Mkdtuple3 @@ -3084,8 +3133,8 @@ let (instantiate_term_implicits_uvs : FStar_Pervasives.Mkdtuple3 (uvs, t1, ty1))))) - uu___1))) uu___))) - uu___))) uu___))) uu___) + uu___6))) uu___4))) + uu___3))) uu___2))) uu___1) let (check_universe : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3094,6 +3143,10 @@ let (check_universe : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3105,10 +3158,10 @@ let (check_universe : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (250)) (Prims.of_int (25)) (Prims.of_int (264)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun f -> + let uu___1 = catch_all (fun uu___2 -> rtb_universe_of g f t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3121,12 +3174,13 @@ let (check_universe : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (250)) (Prims.of_int (25)) (Prims.of_int (264)) (Prims.of_int (23))))) - (Obj.magic - (catch_all (fun uu___ -> rtb_universe_of g f t))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (ru_opt, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3145,16 +3199,20 @@ let (check_universe : (Prims.of_int (4)) (Prims.of_int (264)) (Prims.of_int (23))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match ru_opt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + ill_typed_term t + (FStar_Pervasives_Native.Some + (Pulse_Syntax_Pure.tm_type + Pulse_Syntax_Pure.u_unknown)) + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3171,28 +3229,23 @@ let (check_universe : (Prims.of_int (6)) (Prims.of_int (257)) (Prims.of_int (81))))) - (Obj.magic - (ill_typed_term t - (FStar_Pervasives_Native.Some - (Pulse_Syntax_Pure.tm_type - Pulse_Syntax_Pure.u_unknown)) - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - t) uu___2)) - uu___2))) + t) uu___6)) + uu___6))) | FStar_Pervasives_Native.Some ru -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___5 -> Prims.Mkdtuple2 - (ru, ()))))) uu___1))) - uu___))) uu___) + (ru, ()))))) uu___4))) + uu___2))) uu___1) let (tc_meta_callback : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -3207,6 +3260,33 @@ let (tc_meta_callback : fun g -> fun f -> fun e -> + let uu___ = + let uu___1 = catch_all (fun uu___2 -> rtb_tc_term g f e) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (269)) (Prims.of_int (12)) + (Prims.of_int (269)) (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (269)) (Prims.of_int (6)) + (Prims.of_int (274)) (Prims.of_int (14))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + match uu___2 with + | (FStar_Pervasives_Native.None, issues) -> + (FStar_Pervasives_Native.None, issues) + | (FStar_Pervasives_Native.Some (e1, (eff, t)), issues) + -> + ((FStar_Pervasives_Native.Some + (FStar_Pervasives.Mkdtuple4 + (e1, eff, t, + (FStar_Reflection_Typing.T_Token + (f, e1, (eff, t), ()))))), issues))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3218,33 +3298,8 @@ let (tc_meta_callback : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (268)) (Prims.of_int (8)) (Prims.of_int (268)) (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (269)) (Prims.of_int (12)) - (Prims.of_int (269)) (Prims.of_int (50))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (269)) (Prims.of_int (6)) - (Prims.of_int (274)) (Prims.of_int (14))))) - (Obj.magic (catch_all (fun uu___ -> rtb_tc_term g f e))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (FStar_Pervasives_Native.None, issues) -> - (FStar_Pervasives_Native.None, issues) - | (FStar_Pervasives_Native.Some (e1, (eff, t)), - issues) -> - ((FStar_Pervasives_Native.Some - (FStar_Pervasives.Mkdtuple4 - (e1, eff, t, - (FStar_Reflection_Typing.T_Token - (f, e1, (eff, t), ()))))), issues))))) - (fun res -> FStar_Tactics_Effect.lift_div_tac (fun uu___ -> res)) + (Obj.magic uu___) + (fun res -> FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> res)) let (compute_term_type : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3254,6 +3309,10 @@ let (compute_term_type : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3264,11 +3323,81 @@ let (compute_term_type : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (284)) (Prims.of_int (4)) (Prims.of_int (294)) - (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Prims.of_int (63))))) (Obj.magic uu___) + (fun uu___1 -> (fun fg -> + let uu___1 = + debug g + (fun uu___2 -> + let uu___3 = FStar_Tactics_V2_Builtins.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (287)) (Prims.of_int (22)) + (Prims.of_int (287)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (285)) (Prims.of_int (12)) + (Prims.of_int (287)) (Prims.of_int (42))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + Pulse_Syntax_Printer.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (286)) + (Prims.of_int (22)) + (Prims.of_int (286)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + Prims.strcat + (Prims.strcat + "check_tot : called on " + (Prims.strcat uu___7 + " elaborated to ")) + (Prims.strcat x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (285)) + (Prims.of_int (12)) + (Prims.of_int (287)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (285)) + (Prims.of_int (12)) + (Prims.of_int (287)) + (Prims.of_int (42))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) + uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3281,86 +3410,10 @@ let (compute_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (287)) (Prims.of_int (44)) (Prims.of_int (294)) (Prims.of_int (63))))) - (Obj.magic - (debug g - (fun uu___ -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (287)) - (Prims.of_int (22)) - (Prims.of_int (287)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (285)) - (Prims.of_int (12)) - (Prims.of_int (287)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.term_to_string t)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (285)) - (Prims.of_int (12)) - (Prims.of_int (287)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (285)) - (Prims.of_int (12)) - (Prims.of_int (287)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (286)) - (Prims.of_int (22)) - (Prims.of_int (286)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - t)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat - "check_tot : called on " - (Prims.strcat - uu___2 - " elaborated to ")) - (Prims.strcat x ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = tc_meta_callback g fg t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3379,11 +3432,14 @@ let (compute_term_type : (Prims.of_int (44)) (Prims.of_int (294)) (Prims.of_int (63))))) - (Obj.magic (tc_meta_callback g fg t)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (res, issues) -> + let uu___5 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3402,17 +3458,20 @@ let (compute_term_type : (Prims.of_int (4)) (Prims.of_int (294)) (Prims.of_int (63))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> match res with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 = + ill_typed_term + t + FStar_Pervasives_Native.None + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3430,19 +3489,16 @@ let (compute_term_type : (Prims.of_int (293)) (Prims.of_int (63))))) (Obj.magic - (ill_typed_term - t - FStar_Pervasives_Native.None - FStar_Pervasives_Native.None)) - (fun uu___3 -> - (fun uu___3 + uu___7) + (fun uu___8 -> + (fun uu___8 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - t) uu___3)) - uu___3))) + t) uu___8)) + uu___8))) | FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple4 (rt, eff, ty', tok)) @@ -3450,12 +3506,12 @@ let (compute_term_type : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___7 -> FStar_Pervasives.Mkdtuple4 (rt, eff, ty', ()))))) - uu___2))) uu___1))) uu___))) - uu___) + uu___6))) uu___4))) uu___2))) + uu___1) let (compute_term_type_and_u : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3467,6 +3523,10 @@ let (compute_term_type_and_u : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3478,10 +3538,10 @@ let (compute_term_type_and_u : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (303)) (Prims.of_int (26)) (Prims.of_int (313)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun fg -> + let uu___1 = tc_meta_callback g fg t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3494,11 +3554,13 @@ let (compute_term_type_and_u : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (303)) (Prims.of_int (26)) (Prims.of_int (313)) (Prims.of_int (45))))) - (Obj.magic (tc_meta_callback g fg t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (res, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3517,13 +3579,15 @@ let (compute_term_type_and_u : (Prims.of_int (4)) (Prims.of_int (313)) (Prims.of_int (45))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match res with | FStar_Pervasives_Native.None -> + let uu___5 = + ill_typed_term t + FStar_Pervasives_Native.None + FStar_Pervasives_Native.None in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3542,21 +3606,19 @@ let (compute_term_type_and_u : (Prims.of_int (6)) (Prims.of_int (310)) (Prims.of_int (59))))) - (Obj.magic - (ill_typed_term t - FStar_Pervasives_Native.None - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - t) uu___2)) - uu___2)) + t) uu___6)) + uu___6)) | FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple4 (rt, eff, ty', tok)) -> + let uu___5 = check_universe g ty' in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3575,12 +3637,11 @@ let (compute_term_type_and_u : (Prims.of_int (37)) (Prims.of_int (313)) (Prims.of_int (45))))) - (Obj.magic - (check_universe g ty')) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - match uu___2 with + (fun uu___7 -> + match uu___6 with | Prims.Mkdtuple2 (u, uty) -> FStar_Pervasives.Mkdtuple5 @@ -3588,7 +3649,7 @@ let (compute_term_type_and_u : (Prims.Mkdtuple2 (u, ())), ()))))) - uu___1))) uu___))) uu___) + uu___4))) uu___2))) uu___1) let (check_term : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3601,6 +3662,8 @@ let (check_term : fun e -> fun eff -> fun t -> + let uu___ = + instantiate_term_implicits g e (FStar_Pervasives_Native.Some t) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3612,13 +3675,15 @@ let (check_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (316)) (Prims.of_int (39)) (Prims.of_int (333)) (Prims.of_int (78))))) - (Obj.magic - (instantiate_term_implicits g e - (FStar_Pervasives_Native.Some t))) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (e1, uu___1) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (e1, uu___2) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> Pulse_Typing.elab_env g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3633,10 +3698,17 @@ let (check_term : "Pulse.Checker.Pure.fst" (Prims.of_int (320)) (Prims.of_int (24)) (Prims.of_int (333)) (Prims.of_int (78))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Pulse_Typing.elab_env g)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun fg -> + let uu___4 = + catch_all + (fun uu___5 -> + rtb_core_check_term + (Pulse_Typing_Env.push_context g + "check_term_with_expected_type_and_effect" + (FStar_Reflection_V2_Builtins.range_of_term + t)) fg e1 eff t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3655,19 +3727,14 @@ let (check_term : (Prims.of_int (24)) (Prims.of_int (333)) (Prims.of_int (78))))) - (Obj.magic - (catch_all - (fun uu___2 -> - rtb_core_check_term - (Pulse_Typing_Env.push_context - g - "check_term_with_expected_type_and_effect" - (FStar_Reflection_V2_Builtins.range_of_term - t)) fg e1 eff t))) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | (topt, issues) -> + let uu___6 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3686,17 +3753,22 @@ let (check_term : (Prims.of_int (2)) (Prims.of_int (333)) (Prims.of_int (78))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___3 -> - (fun uu___3 -> + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> match topt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr ( + let uu___8 + = + ill_typed_term + e1 + (FStar_Pervasives_Native.Some + t) + FStar_Pervasives_Native.None in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3715,22 +3787,18 @@ let (check_term : (Prims.of_int (332)) (Prims.of_int (61))))) (Obj.magic - (ill_typed_term - e1 - (FStar_Pervasives_Native.Some - t) - FStar_Pervasives_Native.None)) + uu___8) (fun - uu___4 -> + uu___9 -> (fun - uu___4 -> + uu___9 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term e1) - uu___4)) - uu___4))) + uu___9)) + uu___9))) | FStar_Pervasives_Native.Some tok -> Obj.magic @@ -3738,11 +3806,11 @@ let (check_term : ( FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> Prims.Mkdtuple2 (e1, ()))))) - uu___3))) uu___2))) - uu___2))) uu___) + uu___7))) uu___5))) + uu___4))) uu___1) let (check_term_at_type : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3754,6 +3822,8 @@ let (check_term_at_type : fun g -> fun e -> fun t -> + let uu___ = + instantiate_term_implicits g e (FStar_Pervasives_Native.Some t) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3765,12 +3835,15 @@ let (check_term_at_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (336)) (Prims.of_int (60)) (Prims.of_int (353)) (Prims.of_int (65))))) - (Obj.magic - (instantiate_term_implicits g e (FStar_Pervasives_Native.Some t))) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (e1, uu___1) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (e1, uu___2) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> Pulse_Typing.elab_env g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3783,10 +3856,17 @@ let (check_term_at_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (339)) (Prims.of_int (24)) (Prims.of_int (353)) (Prims.of_int (65))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Pulse_Typing.elab_env g)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun fg -> + let uu___4 = + catch_all + (fun uu___5 -> + rtb_core_check_term_at_type + (Pulse_Typing_Env.push_context g + "check_term_with_expected_type" + (FStar_Reflection_V2_Builtins.range_of_term + t)) fg e1 t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3805,19 +3885,14 @@ let (check_term_at_type : (Prims.of_int (24)) (Prims.of_int (353)) (Prims.of_int (65))))) - (Obj.magic - (catch_all - (fun uu___2 -> - rtb_core_check_term_at_type - (Pulse_Typing_Env.push_context - g - "check_term_with_expected_type" - (FStar_Reflection_V2_Builtins.range_of_term - t)) fg e1 t))) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | (effopt, issues) -> + let uu___6 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3836,17 +3911,22 @@ let (check_term_at_type : (Prims.of_int (2)) (Prims.of_int (353)) (Prims.of_int (65))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___3 -> - (fun uu___3 -> + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> match effopt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + ill_typed_term + e1 + (FStar_Pervasives_Native.Some + t) + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3864,34 +3944,30 @@ let (check_term_at_type : (Prims.of_int (351)) (Prims.of_int (61))))) (Obj.magic - (ill_typed_term - e1 - (FStar_Pervasives_Native.Some - t) - FStar_Pervasives_Native.None)) + uu___8) (fun - uu___4 -> + uu___9 -> (fun - uu___4 -> + uu___9 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term e1) - uu___4)) - uu___4))) + uu___9)) + uu___9))) | FStar_Pervasives_Native.Some eff -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> FStar_Pervasives.Mkdtuple3 (e1, eff, ()))))) - uu___3))) uu___2))) - uu___2))) uu___) + uu___7))) uu___5))) + uu___4))) uu___1) let (tc_with_core : Pulse_Typing_Env.env -> FStar_Reflection_Types.env -> @@ -3905,6 +3981,12 @@ let (tc_with_core : fun g -> fun f -> fun e -> + let uu___ = + catch_all + (fun uu___1 -> + rtb_core_compute_term_type + (Pulse_Typing_Env.push_context g "tc_with_core" + (FStar_Reflection_V2_Builtins.range_of_term e)) f e) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3916,16 +3998,11 @@ let (tc_with_core : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (357)) (Prims.of_int (3)) (Prims.of_int (361)) (Prims.of_int (76))))) - (Obj.magic - (catch_all - (fun uu___ -> - rtb_core_compute_term_type - (Pulse_Typing_Env.push_context g "tc_with_core" - (FStar_Reflection_V2_Builtins.range_of_term e)) f e))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | (ropt, issues) -> (match ropt with | FStar_Pervasives_Native.None -> @@ -3945,6 +4022,10 @@ let (core_compute_term_type : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3956,10 +4037,13 @@ let (core_compute_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (367)) (Prims.of_int (26)) (Prims.of_int (375)) (Prims.of_int (55))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun fg -> + let uu___1 = + tc_with_core + (Pulse_Typing_Env.push_context g "core_check_term" + (FStar_Reflection_V2_Builtins.range_of_term t)) fg t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3972,15 +4056,13 @@ let (core_compute_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (367)) (Prims.of_int (26)) (Prims.of_int (375)) (Prims.of_int (55))))) - (Obj.magic - (tc_with_core - (Pulse_Typing_Env.push_context g "core_check_term" - (FStar_Reflection_V2_Builtins.range_of_term t)) - fg t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (res, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3999,16 +4081,18 @@ let (core_compute_term_type : (Prims.of_int (4)) (Prims.of_int (375)) (Prims.of_int (55))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match res with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + ill_typed_term t + FStar_Pervasives_Native.None + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4025,28 +4109,25 @@ let (core_compute_term_type : (Prims.of_int (6)) (Prims.of_int (374)) (Prims.of_int (59))))) - (Obj.magic - (ill_typed_term t - FStar_Pervasives_Native.None - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - t) uu___2)) - uu___2))) + t) uu___6)) + uu___6))) | FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple3 (eff, ty', tok)) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___5 -> FStar_Pervasives.Mkdtuple3 (eff, ty', ()))))) - uu___1))) uu___))) uu___) + uu___4))) uu___2))) uu___1) let (core_check_term : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4057,6 +4138,10 @@ let (core_check_term : fun e -> fun eff -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4068,10 +4153,16 @@ let (core_check_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (378)) (Prims.of_int (24)) (Prims.of_int (390)) (Prims.of_int (69))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun fg -> + let uu___1 = + catch_all + (fun uu___2 -> + rtb_core_check_term + (Pulse_Typing_Env.push_context g "core_check_term" + (FStar_Reflection_V2_Builtins.range_of_term t)) + fg e eff t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4084,18 +4175,14 @@ let (core_check_term : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (378)) (Prims.of_int (24)) (Prims.of_int (390)) (Prims.of_int (69))))) - (Obj.magic - (catch_all - (fun uu___ -> - rtb_core_check_term - (Pulse_Typing_Env.push_context g - "core_check_term" - (FStar_Reflection_V2_Builtins.range_of_term - t)) fg e eff t))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (topt, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues + issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4114,16 +4201,19 @@ let (core_check_term : (Prims.of_int (2)) (Prims.of_int (390)) (Prims.of_int (69))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match topt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + ill_typed_term e + (FStar_Pervasives_Native.Some + t) + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4140,26 +4230,22 @@ let (core_check_term : (Prims.of_int (4)) (Prims.of_int (389)) (Prims.of_int (61))))) - (Obj.magic - (ill_typed_term e - (FStar_Pervasives_Native.Some - t) - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - e) uu___2)) - uu___2))) + e) uu___6)) + uu___6))) | FStar_Pervasives_Native.Some tok -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - uu___1))) uu___))) uu___) + (fun uu___5 -> ())))) + uu___4))) uu___2))) uu___1) let (core_check_term_at_type : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4170,6 +4256,10 @@ let (core_check_term_at_type : fun g -> fun e -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.elab_env g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4181,10 +4271,17 @@ let (core_check_term_at_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (393)) (Prims.of_int (24)) (Prims.of_int (406)) (Prims.of_int (62))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun fg -> + let uu___1 = + catch_all + (fun uu___2 -> + rtb_core_check_term_at_type + (Pulse_Typing_Env.push_context g + "core_check_term_at_type" + (FStar_Reflection_V2_Builtins.range_of_term t)) + fg e t) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4197,18 +4294,13 @@ let (core_check_term_at_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (393)) (Prims.of_int (24)) (Prims.of_int (406)) (Prims.of_int (62))))) - (Obj.magic - (catch_all - (fun uu___ -> - rtb_core_check_term_at_type - (Pulse_Typing_Env.push_context g - "core_check_term_at_type" - (FStar_Reflection_V2_Builtins.range_of_term - t)) fg e t))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (effopt, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4227,16 +4319,19 @@ let (core_check_term_at_type : (Prims.of_int (2)) (Prims.of_int (406)) (Prims.of_int (62))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match effopt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + ill_typed_term e + (FStar_Pervasives_Native.Some + t) + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4253,28 +4348,24 @@ let (core_check_term_at_type : (Prims.of_int (4)) (Prims.of_int (404)) (Prims.of_int (61))))) - (Obj.magic - (ill_typed_term e - (FStar_Pervasives_Native.Some - t) - FStar_Pervasives_Native.None)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - e) uu___2)) - uu___2))) + e) uu___6)) + uu___6))) | FStar_Pervasives_Native.Some eff -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___5 -> Prims.Mkdtuple2 (eff, ()))))) - uu___1))) uu___))) uu___) + uu___4))) uu___2))) uu___1) let (check_slprop : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4307,6 +4398,10 @@ let (try_get_non_informative_witness_aux : fun u -> fun ty -> fun ty_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Typing.non_informative_class u ty)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4318,10 +4413,13 @@ let (try_get_non_informative_witness_aux : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (435)) (Prims.of_int (44)) (Prims.of_int (454)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.non_informative_class u ty)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun goal -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> Pulse_Typing.elab_env g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4334,10 +4432,13 @@ let (try_get_non_informative_witness_aux : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (436)) (Prims.of_int (29)) (Prims.of_int (454)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Typing.elab_env g)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun r_env -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4356,10 +4457,14 @@ let (try_get_non_informative_witness_aux : (Prims.of_int (6)) (Prims.of_int (454)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun constraint_typing -> + let uu___3 = + FStar_Tactics_V2_Builtins.call_subtac + r_env + FStar_Tactics_Typeclasses.tcresolve + u goal in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4378,14 +4483,10 @@ let (try_get_non_informative_witness_aux : (Prims.of_int (4)) (Prims.of_int (454)) (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.call_subtac - r_env - FStar_Tactics_Typeclasses.tcresolve - u goal)) + (Obj.magic uu___3) (fun r -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___4 -> match r with | (FStar_Pervasives_Native.None, issues) -> @@ -4400,8 +4501,8 @@ let (try_get_non_informative_witness_aux : ( Pulse_RuntimeUtils.range_of_term ty)), ()))), - issues))))) uu___))) - uu___))) uu___) + issues))))) uu___3))) + uu___2))) uu___1) let (try_get_non_informative_witness : Pulse_Typing_Env.env -> Pulse_Syntax_Base.universe -> @@ -4415,6 +4516,7 @@ let (try_get_non_informative_witness : fun u -> fun ty -> fun ty_typing -> + let uu___ = try_get_non_informative_witness_aux g u ty () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4426,10 +4528,10 @@ let (try_get_non_informative_witness : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (456)) (Prims.of_int (54)) (Prims.of_int (458)) (Prims.of_int (6))))) - (Obj.magic (try_get_non_informative_witness_aux g u ty ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> match uu___ with | (ropt, uu___2) -> ropt)) + (fun uu___2 -> match uu___1 with | (ropt, uu___3) -> ropt)) let (get_non_informative_witness : Pulse_Typing_Env.env -> Pulse_Syntax_Base.universe -> @@ -4442,6 +4544,7 @@ let (get_non_informative_witness : fun u -> fun t -> fun t_typing -> + let uu___ = try_get_non_informative_witness_aux g u t () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4453,11 +4556,13 @@ let (get_non_informative_witness : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (462)) (Prims.of_int (4)) (Prims.of_int (473)) (Prims.of_int (7))))) - (Obj.magic (try_get_non_informative_witness_aux g u t ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (FStar_Pervasives_Native.None, issues) -> + let uu___2 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4472,10 +4577,86 @@ let (get_non_informative_witness : "Pulse.Checker.Pure.fst" (Prims.of_int (466)) (Prims.of_int (6)) (Prims.of_int (470)) (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + Pulse_PP.pp Pulse_PP.printable_term + t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (469)) + (Prims.of_int (10)) + (Prims.of_int (469)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (468)) + (Prims.of_int (8)) + (Prims.of_int (469)) + (Prims.of_int (16))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "Got:") + uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (468)) + (Prims.of_int (8)) + (Prims.of_int (469)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (466)) + (Prims.of_int (45)) + (Prims.of_int (470)) + (Prims.of_int (7))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> [uu___7])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (466)) + (Prims.of_int (45)) + (Prims.of_int (470)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (466)) + (Prims.of_int (45)) + (Prims.of_int (470)) + (Prims.of_int (7))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + (Pulse_PP.text + "Expected a term with a non-informative (e.g., erased) type.") + :: uu___6)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4494,92 +4675,18 @@ let (get_non_informative_witness : (Prims.of_int (6)) (Prims.of_int (470)) (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (466)) - (Prims.of_int (45)) - (Prims.of_int (470)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (466)) - (Prims.of_int (45)) - (Prims.of_int (470)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (468)) - (Prims.of_int (8)) - (Prims.of_int (469)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (466)) - (Prims.of_int (45)) - (Prims.of_int (470)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (469)) - (Prims.of_int (10)) - (Prims.of_int (469)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (468)) - (Prims.of_int (8)) - (Prims.of_int (469)) - (Prims.of_int (16))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Got:") - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - [uu___2])))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - (Pulse_PP.text - "Expected a term with a non-informative (e.g., erased) type.") - :: uu___2)))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term - t)) uu___2)) uu___2))) - uu___1)) + t)) uu___5)) uu___5))) + uu___3)) | (FStar_Pervasives_Native.Some e, issues) -> + let uu___2 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4594,11 +4701,10 @@ let (get_non_informative_witness : "Pulse.Checker.Pure.fst" (Prims.of_int (471)) (Prims.of_int (11)) (Prims.of_int (471)) (Prims.of_int (12))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> e)))) uu___) + (fun uu___4 -> e)))) uu___1) let (try_check_prop_validity : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4609,6 +4715,8 @@ let (try_check_prop_validity : fun g -> fun p -> fun uu___ -> + let uu___1 = + rtb_check_prop_validity g true (Pulse_Typing.elab_env g) p in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4620,11 +4728,10 @@ let (try_check_prop_validity : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (477)) (Prims.of_int (3)) (Prims.of_int (478)) (Prims.of_int (9))))) - (Obj.magic - (rtb_check_prop_validity g true (Pulse_Typing.elab_env g) p)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> match uu___1 with | (t_opt, issues) -> t_opt)) + (fun uu___3 -> match uu___2 with | (t_opt, issues) -> t_opt)) let (check_prop_validity : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4633,6 +4740,8 @@ let (check_prop_validity : fun g -> fun p -> fun uu___ -> + let uu___1 = + rtb_check_prop_validity g false (Pulse_Typing.elab_env g) p in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4644,12 +4753,12 @@ let (check_prop_validity : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (482)) (Prims.of_int (3)) (Prims.of_int (490)) (Prims.of_int (21))))) - (Obj.magic - (rtb_check_prop_validity g false (Pulse_Typing.elab_env g) p)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (t_opt, issues) -> + let uu___3 = FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4662,15 +4771,67 @@ let (check_prop_validity : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (484)) (Prims.of_int (4)) (Prims.of_int (490)) (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match t_opt with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + let uu___6 = + let uu___7 = + Pulse_PP.pp + Pulse_PP.printable_term p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (488)) + (Prims.of_int (59)) + (Prims.of_int (488)) + (Prims.of_int (65))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (488)) + (Prims.of_int (8)) + (Prims.of_int (488)) + (Prims.of_int (65))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Failed to prove pure property:") + uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (488)) + (Prims.of_int (8)) + (Prims.of_int (488)) + (Prims.of_int (65))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (487)) + (Prims.of_int (51)) + (Prims.of_int (489)) + (Prims.of_int (7))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> [uu___7])) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4687,70 +4848,19 @@ let (check_prop_validity : (Prims.of_int (6)) (Prims.of_int (489)) (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (488)) - (Prims.of_int (8)) - (Prims.of_int (488)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (487)) - (Prims.of_int (51)) - (Prims.of_int (489)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (488)) - (Prims.of_int (59)) - (Prims.of_int (488)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (488)) - (Prims.of_int (8)) - (Prims.of_int (488)) - (Prims.of_int (65))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Failed to prove pure property:") - uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> [uu___3])))) - (fun uu___3 -> - (fun uu___3 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - p) uu___3)) uu___3))) + p) uu___6)) uu___6))) | FStar_Pervasives_Native.Some tok -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> ())))) uu___2))) - uu___1) + (fun uu___5 -> ())))) uu___4))) + uu___2) let fail_expected_tot_found_ghost : 'uuuuu . Pulse_Typing_Env.env -> @@ -4758,6 +4868,42 @@ let fail_expected_tot_found_ghost : = fun g -> fun t -> + let uu___ = + let uu___1 = + let uu___2 = Pulse_PP.pp Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (495)) (Prims.of_int (6)) + (Prims.of_int (495)) (Prims.of_int (12))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (494)) (Prims.of_int (4)) + (Prims.of_int (495)) (Prims.of_int (12))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one + (Pulse_PP.text + "Expected a total term, got found ghost term:") + uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (494)) (Prims.of_int (4)) + (Prims.of_int (495)) (Prims.of_int (12))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Pure.fst" + (Prims.of_int (493)) (Prims.of_int (41)) + (Prims.of_int (496)) (Prims.of_int (3))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> [uu___2])) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4768,48 +4914,13 @@ let fail_expected_tot_found_ghost : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (493)) (Prims.of_int (2)) (Prims.of_int (496)) - (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (494)) (Prims.of_int (4)) - (Prims.of_int (495)) (Prims.of_int (12))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (493)) (Prims.of_int (41)) - (Prims.of_int (496)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (495)) (Prims.of_int (6)) - (Prims.of_int (495)) (Prims.of_int (12))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (494)) (Prims.of_int (4)) - (Prims.of_int (495)) (Prims.of_int (12))))) - (Obj.magic (Pulse_PP.pp Pulse_PP.printable_term t)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pprint.prefix (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Expected a total term, got found ghost term:") - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> [uu___])))) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some - (Pulse_RuntimeUtils.range_of_term t)) uu___)) uu___) + (Pulse_RuntimeUtils.range_of_term t)) uu___1)) uu___1) let (compute_tot_term_type : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4819,6 +4930,7 @@ let (compute_tot_term_type : = fun g -> fun t -> + let uu___ = compute_term_type g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4830,21 +4942,21 @@ let (compute_tot_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (498)) (Prims.of_int (31)) (Prims.of_int (501)) (Prims.of_int (40))))) - (Obj.magic (compute_term_type g t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple4 (t1, eff, ty, t_typing) -> if eff = FStar_TypeChecker_Core.E_Total then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> FStar_Pervasives.Mkdtuple3 (t1, ty, ())))) else Obj.magic (Obj.repr (fail_expected_tot_found_ghost g t1))) - uu___) + uu___1) let (compute_tot_term_type_and_u : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4854,6 +4966,7 @@ let (compute_tot_term_type_and_u : = fun g -> fun t -> + let uu___ = compute_term_type_and_u g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4865,10 +4978,10 @@ let (compute_tot_term_type_and_u : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (503)) (Prims.of_int (37)) (Prims.of_int (506)) (Prims.of_int (40))))) - (Obj.magic (compute_term_type_and_u g t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple5 (t1, eff, ty, Prims.Mkdtuple2 (u, ty_typing), t_typing) -> if eff = FStar_TypeChecker_Core.E_Total @@ -4876,11 +4989,11 @@ let (compute_tot_term_type_and_u : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> FStar_Pervasives.Mkdtuple5 (t1, u, ty, (), ())))) else Obj.magic (Obj.repr (fail_expected_tot_found_ghost g t1))) - uu___) + uu___1) let (check_tot_term : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4897,6 +5010,7 @@ let (core_compute_tot_term_type : = fun g -> fun t -> + let uu___ = core_compute_term_type g t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4908,20 +5022,20 @@ let (core_compute_tot_term_type : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (511)) (Prims.of_int (36)) (Prims.of_int (514)) (Prims.of_int (40))))) - (Obj.magic (core_compute_term_type g t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (eff, ty, d) -> if eff = FStar_TypeChecker_Core.E_Total then Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.Mkdtuple2 (ty, ())))) + (fun uu___2 -> Prims.Mkdtuple2 (ty, ())))) else Obj.magic (Obj.repr (fail_expected_tot_found_ghost g t))) - uu___) + uu___1) let (core_check_tot_term : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4938,6 +5052,11 @@ let (is_non_informative : = fun g -> fun c -> + let uu___ = + catch_all + (fun uu___1 -> + FStar_Tactics_V2_Builtins.is_non_informative + (Pulse_Typing.elab_env g) (Pulse_Elaborate_Pure.elab_comp c)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4948,17 +5067,12 @@ let (is_non_informative : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (519)) (Prims.of_int (28)) - (Prims.of_int (522)) (Prims.of_int (6))))) - (Obj.magic - (catch_all - (fun uu___ -> - FStar_Tactics_V2_Builtins.is_non_informative - (Pulse_Typing.elab_env g) - (Pulse_Elaborate_Pure.elab_comp c)))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (522)) (Prims.of_int (6))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (ropt, issues) -> + let uu___2 = FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4971,11 +5085,10 @@ let (is_non_informative : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (520)) (Prims.of_int (6)) (Prims.of_int (520)) (Prims.of_int (10))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ropt)))) uu___) + (fun uu___4 -> ropt)))) uu___1) let (check_subtyping : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -4988,6 +5101,7 @@ let (check_subtyping : fun t2 -> FStar_Tactics_V2_Derived.with_policy FStar_Tactics_Types.ForceSMT (fun uu___ -> + let uu___1 = rtb_check_subtyping g t1 t2 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -4999,11 +5113,13 @@ let (check_subtyping : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (525)) (Prims.of_int (35)) (Prims.of_int (534)) (Prims.of_int (47))))) - (Obj.magic (rtb_check_subtyping g t1 t2)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | (res, issues) -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5022,177 +5138,185 @@ let (check_subtyping : (Prims.of_int (2)) (Prims.of_int (534)) (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> match res with | FStar_Pervasives_Native.Some tok -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> tok))) + (fun uu___5 -> tok))) | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (533)) - (Prims.of_int (10)) - (Prims.of_int (534)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (532)) - (Prims.of_int (4)) - (Prims.of_int (534)) - (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + Pulse_PP.pp + Pulse_PP.printable_term + t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (533)) - (Prims.of_int (12)) (Prims.of_int (534)) - (Prims.of_int (46))))) + (Prims.of_int (16)) + (Prims.of_int (534)) + (Prims.of_int (21))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" - (Prims.of_int (533)) - (Prims.of_int (10)) (Prims.of_int (534)) - (Prims.of_int (47))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (534)) - (Prims.of_int (16)) - (Prims.of_int (534)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (533)) - (Prims.of_int (12)) - (Prims.of_int (534)) - (Prims.of_int (46))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (16)) + (Prims.of_int (534)) + (Prims.of_int (46))))) + (Obj.magic uu___8) + (fun uu___9 -> + (fun uu___9 -> + let uu___10 = + let uu___11 = + Pulse_PP.pp + Pulse_PP.printable_term + t2 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (534)) - (Prims.of_int (16)) + (Prims.of_int (41)) (Prims.of_int (534)) - (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (534)) - (Prims.of_int (16)) + (Prims.of_int (26)) (Prims.of_int (534)) (Prims.of_int (46))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t1)) - (fun uu___3 - -> + (Obj.magic + uu___11) + (fun uu___12 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___13 + -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text + "and") + uu___12)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (534)) (Prims.of_int (26)) (Prims.of_int (534)) (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (534)) (Prims.of_int (16)) (Prims.of_int (534)) (Prims.of_int (46))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (534)) - (Prims.of_int (41)) - (Prims.of_int (534)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Pure.fst" - (Prims.of_int (534)) - (Prims.of_int (26)) - (Prims.of_int (534)) - (Prims.of_int (46))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t2)) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "and") - uu___4)))) - (fun - uu___4 -> + (Obj.magic + uu___10) + (fun uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___3 - uu___4)))) - uu___3))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 + uu___12 -> FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "Could not prove subtyping of ") - uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - [uu___3])))) - (fun uu___3 -> - (fun uu___3 -> + uu___9 + uu___11)))) + uu___9) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (534)) + (Prims.of_int (16)) + (Prims.of_int (534)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (533)) + (Prims.of_int (12)) + (Prims.of_int (534)) + (Prims.of_int (46))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text + "Could not prove subtyping of ") + uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (533)) + (Prims.of_int (12)) + (Prims.of_int (534)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (533)) + (Prims.of_int (10)) + (Prims.of_int (534)) + (Prims.of_int (47))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + [uu___7])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (533)) + (Prims.of_int (10)) + (Prims.of_int (534)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Pure.fst" + (Prims.of_int (532)) + (Prims.of_int (4)) + (Prims.of_int (534)) + (Prims.of_int (47))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> Obj.magic (maybe_fail_doc issues g (Pulse_RuntimeUtils.range_of_term - t1) uu___3)) - uu___3)))) uu___2))) - uu___1)) + t1) uu___6)) + uu___6)))) uu___4))) + uu___2)) let (check_equiv : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -5204,6 +5328,8 @@ let (check_equiv : fun g -> fun t1 -> fun t2 -> + let uu___ = + Pulse_Typing_Util.check_equiv_now (Pulse_Typing.elab_env g) t1 t2 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -5215,13 +5341,12 @@ let (check_equiv : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (537)) (Prims.of_int (25)) (Prims.of_int (541)) (Prims.of_int (5))))) - (Obj.magic - (Pulse_Typing_Util.check_equiv_now (Pulse_Typing.elab_env g) t1 - t2)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (res, issues) -> + let uu___2 = FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5234,8 +5359,7 @@ let (check_equiv : (FStar_Range.mk_range "Pulse.Checker.Pure.fst" (Prims.of_int (538)) (Prims.of_int (6)) (Prims.of_int (538)) (Prims.of_int (9))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> res)))) uu___) \ No newline at end of file + (fun uu___4 -> res)))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Return.ml b/src/ocaml/plugin/generated/Pulse_Checker_Return.ml index f00fc7e00..ea29087a3 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Return.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Return.ml @@ -90,6 +90,7 @@ let (check_tot_or_ghost_term : fun e -> fun t -> fun c -> + let uu___ = Pulse_Checker_Pure.check_term_at_type g e t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -100,13 +101,12 @@ let (check_tot_or_ghost_term : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (51)) Prims.int_one (Prims.of_int (52)) - (Prims.of_int (18))))) - (Obj.magic (Pulse_Checker_Pure.check_term_at_type g e t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (18))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (e1, eff, d) -> - Obj.magic (check_effect g e1 eff t () c)) uu___) + Obj.magic (check_effect g e1 eff t () c)) uu___1) type 'g result_of_typing = | R of Pulse_Syntax_Base.ctag * Pulse_Syntax_Base.term * Pulse_Syntax_Base.universe * Pulse_Syntax_Base.term * unit * unit @@ -140,6 +140,7 @@ let (compute_tot_or_ghost_term_type_and_u : fun g -> fun e -> fun c -> + let uu___ = Pulse_Checker_Pure.compute_term_type_and_u g e in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -150,13 +151,13 @@ let (compute_tot_or_ghost_term_type_and_u : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (67)) Prims.int_one (Prims.of_int (69)) - (Prims.of_int (17))))) - (Obj.magic (Pulse_Checker_Pure.compute_term_type_and_u g e)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (17))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple5 (t, eff, ty, Prims.Mkdtuple2 (u, ud), d) -> + let uu___2 = check_effect g t eff ty () c in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -171,13 +172,13 @@ let (compute_tot_or_ghost_term_type_and_u : "Pulse.Checker.Return.fst" (Prims.of_int (67)) (Prims.of_int (71)) (Prims.of_int (69)) (Prims.of_int (17))))) - (Obj.magic (check_effect g t eff ty () c)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | FStar_Pervasives.Mkdtuple3 (c1, e1, d1) -> - R (c1, e1, u, ty, (), ()))))) uu___) + R (c1, e1, u, ty, (), ()))))) uu___1) let (check_core : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -196,6 +197,12 @@ let (check_core : fun res_ppname -> fun st -> fun ctag_ctxt -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context "check_return" + st.Pulse_Syntax_Base.range1 g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -207,12 +214,13 @@ let (check_core : (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (82)) (Prims.of_int (51)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "check_return" - st.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> st.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -228,11 +236,10 @@ let (check_core : (Prims.of_int (82)) (Prims.of_int (51)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_Return { Pulse_Syntax_Base.expected_type = @@ -240,83 +247,67 @@ let (check_core : Pulse_Syntax_Base.insert_eq = use_eq; Pulse_Syntax_Base.term = t;_} -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (86)) - (Prims.of_int (4)) - (Prims.of_int (98)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (99)) - (Prims.of_int (4)) - (Prims.of_int (138)) - (Prims.of_int (40))))) - (match post_hint with - | FStar_Pervasives_Native.Some - post -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pervasives_Native.Some - (FStar_Pervasives.Mkdtuple3 - ((post.Pulse_Typing.ret_ty), - (post.Pulse_Typing.u), - ()))))) - | uu___1 -> - Obj.magic - (Obj.repr - (match Pulse_Syntax_Pure.inspect_term - expected_type - with - | Pulse_Syntax_Pure.Tm_Unknown - -> - Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 - -> - FStar_Pervasives_Native.None)) - | uu___2 -> - Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + let uu___3 = + match post_hint with + | FStar_Pervasives_Native.Some post + -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Pervasives_Native.Some + (FStar_Pervasives.Mkdtuple3 + ((post.Pulse_Typing.ret_ty), + (post.Pulse_Typing.u), + ()))))) + | uu___4 -> + Obj.magic + (Obj.repr + (match Pulse_Syntax_Pure.inspect_term + expected_type + with + | Pulse_Syntax_Pure.Tm_Unknown + -> + Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pervasives_Native.None)) + | uu___5 -> + Obj.repr + (let uu___6 = + Pulse_Checker_Pure.instantiate_term_implicits + g1 + expected_type + FStar_Pervasives_Native.None in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (96)) (Prims.of_int (20)) (Prims.of_int (96)) (Prims.of_int (86))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (95)) (Prims.of_int (12)) (Prims.of_int (98)) (Prims.of_int (27))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits - g1 - expected_type - FStar_Pervasives_Native.None)) - (fun uu___3 - -> - (fun - uu___3 -> - match uu___3 - with - | - (ty, - uu___4) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + match uu___7 + with + | (ty, + uu___8) -> + let uu___9 + = + Pulse_Checker_Pure.check_universe + g1 ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -336,14 +327,15 @@ let (check_core : (Prims.of_int (98)) (Prims.of_int (27))))) (Obj.magic - (Pulse_Checker_Pure.check_universe - g1 ty)) + uu___9) (fun - uu___5 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - match uu___5 + uu___11 + -> + match uu___10 with | Prims.Mkdtuple2 @@ -352,9 +344,74 @@ let (check_core : (FStar_Pervasives.Mkdtuple3 (ty, u, ())))))) - uu___3))))) - (fun uu___1 -> + uu___7)))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (86)) + (Prims.of_int (4)) + (Prims.of_int (98)) + (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (99)) + (Prims.of_int (4)) + (Prims.of_int (138)) + (Prims.of_int (40))))) + (Obj.magic uu___3) + (fun uu___4 -> (fun return_type -> + let uu___4 = + match return_type with + | FStar_Pervasives_Native.None + -> + compute_tot_or_ghost_term_type_and_u + g1 t ctag_ctxt + | FStar_Pervasives_Native.Some + (FStar_Pervasives.Mkdtuple3 + (ret_ty, u, + ty_typing)) + -> + let uu___5 = + check_tot_or_ghost_term + g1 t ret_ty + ctag_ctxt in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (105)) + (Prims.of_int (26)) + (Prims.of_int (105)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (104)) + (Prims.of_int (40)) + (Prims.of_int (106)) + (Prims.of_int (32))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + match uu___6 + with + | FStar_Pervasives.Mkdtuple3 + (c, t1, + d) -> + R + (c, t1, + u, + ret_ty, + (), ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -373,69 +430,21 @@ let (check_core : (Prims.of_int (4)) (Prims.of_int (138)) (Prims.of_int (40))))) - (match return_type - with - | FStar_Pervasives_Native.None - -> - Obj.magic - (compute_tot_or_ghost_term_type_and_u - g1 t - ctag_ctxt) - | FStar_Pervasives_Native.Some - (FStar_Pervasives.Mkdtuple3 - (ret_ty, u, - ty_typing)) - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (105)) - (Prims.of_int (26)) - (Prims.of_int (105)) - (Prims.of_int (70))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (104)) - (Prims.of_int (40)) - (Prims.of_int (106)) - (Prims.of_int (32))))) - (Obj.magic - ( - check_tot_or_ghost_term - g1 t - ret_ty - ctag_ctxt)) - (fun uu___1 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - match uu___1 - with - | - FStar_Pervasives.Mkdtuple3 - (c, t1, - d) -> - R - (c, t1, - u, - ret_ty, - (), ()))))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | R (c, t1, u, ty, uty, d) -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + uu___5)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -454,14 +463,20 @@ let (check_core : (Prims.of_int (4)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___6) (fun - uu___2 -> - uu___1)) + uu___7 -> (fun - uu___2 -> + uu___7 -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -480,14 +495,20 @@ let (check_core : (Prims.of_int (20)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing_Env.fresh - g1)) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun x -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + (res_ppname, + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -506,40 +527,30 @@ let (check_core : (Prims.of_int (27)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - (res_ppname, - x))) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> (fun px -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (111)) - (Prims.of_int (6)) - (Prims.of_int (125)) - (Prims.of_int (60))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (109)) - (Prims.of_int (27)) - (Prims.of_int (138)) - (Prims.of_int (40))))) - (match post_hint + let uu___10 + = + match post_hint with | FStar_Pervasives_Native.None -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___11 + = + Pulse_Checker_Pure.check_tot_term + (Pulse_Typing_Env.push_binding + g1 x + (FStar_Pervasives_Native.fst + px) ty) + Pulse_Syntax_Pure.tm_emp + Pulse_Syntax_Pure.tm_slprop in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -557,31 +568,33 @@ let (check_core : (Prims.of_int (114)) (Prims.of_int (19))))) (Obj.magic - (Pulse_Checker_Pure.check_tot_term - (Pulse_Typing_Env.push_binding - g1 x - (FStar_Pervasives_Native.fst - px) ty) - Pulse_Syntax_Pure.tm_emp - Pulse_Syntax_Pure.tm_slprop)) + uu___11) (fun - uu___3 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - match uu___3 + uu___13 + -> + match uu___12 with | Prims.Mkdtuple2 (t2, ty1) -> Prims.Mkdtuple2 - (t2, ())))) + (t2, ()))) | FStar_Pervasives_Native.Some post -> + let uu___11 + = Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> post)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -598,12 +611,11 @@ let (check_core : (Prims.of_int (8)) (Prims.of_int (125)) (Prims.of_int (60))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - post)) + (Obj.magic + uu___11) (fun - uu___3 -> + uu___12 + -> (fun post1 -> if @@ -623,23 +635,54 @@ let (check_core : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> Prims.Mkdtuple2 ((Pulse_Syntax_Naming.open_term_nv post1.Pulse_Typing.post px), ()))))) - uu___3))) + uu___12) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (111)) + (Prims.of_int (6)) + (Prims.of_int (125)) + (Prims.of_int (60))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (109)) + (Prims.of_int (27)) + (Prims.of_int (138)) + (Prims.of_int (40))))) + (Obj.magic + uu___10) (fun - uu___3 -> + uu___11 + -> (fun - uu___3 -> - match uu___3 + uu___11 + -> + match uu___11 with | Prims.Mkdtuple2 (post_opened, post_typing) -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + uu___11)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -658,14 +701,24 @@ let (check_core : (Prims.of_int (65)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___12) (fun - uu___4 -> - uu___3)) + uu___13 + -> (fun - uu___4 -> + uu___13 + -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> + Pulse_Syntax_Naming.close_term + post_opened + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -684,68 +737,55 @@ let (check_core : (Prims.of_int (40)) (Prims.of_int (138)) (Prims.of_int (40))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Syntax_Naming.close_term - post_opened - x)) + (Obj.magic + uu___14) (fun - uu___5 -> + uu___15 + -> (fun post -> + let uu___15 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (129)) - (Prims.of_int (10)) - (Prims.of_int (129)) - (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Return.fst" - (Prims.of_int (129)) - (Prims.of_int (64)) - (Prims.of_int (138)) - (Prims.of_int (40))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___16 + -> Pulse_Typing.T_Return (g1, c, use_eq, u, ty, t1, post, x, (), - (), ()))) - (fun - uu___5 -> - (fun d1 - -> + (), ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" - (Prims.of_int (130)) - (Prims.of_int (11)) - (Prims.of_int (130)) - (Prims.of_int (54))))) + (Prims.of_int (129)) + (Prims.of_int (10)) + (Prims.of_int (129)) + (Prims.of_int (61))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" - (Prims.of_int (131)) - (Prims.of_int (2)) + (Prims.of_int (129)) + (Prims.of_int (64)) (Prims.of_int (138)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint + uu___15) + (fun + uu___16 + -> + (fun d1 + -> + let uu___16 + = + Pulse_Checker_Base.match_comp_res_with_post_hint g1 (Pulse_Typing.wtag (FStar_Pervasives_Native.Some @@ -765,34 +805,46 @@ let (check_core : u ty t1 post x) d1 - post_hint)) - (fun - uu___5 -> - (fun dd - -> + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" - (Prims.of_int (131)) - (Prims.of_int (2)) - (Prims.of_int (134)) - (Prims.of_int (46))))) + (Prims.of_int (130)) + (Prims.of_int (11)) + (Prims.of_int (130)) + (Prims.of_int (54))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Return.fst" - (Prims.of_int (135)) + (Prims.of_int (131)) (Prims.of_int (2)) (Prims.of_int (138)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Checker_Base.debug + uu___16) + (fun + uu___17 + -> + (fun dd + -> + let uu___17 + = + Pulse_Checker_Base.debug g1 (fun - uu___5 -> + uu___18 + -> + let uu___19 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> dd)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -810,22 +862,26 @@ let (check_core : (Prims.of_int (19)) (Prims.of_int (134)) (Prims.of_int (45))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - dd)) + (Obj.magic + uu___19) (fun - uu___6 -> + uu___20 + -> (fun - uu___6 -> - match uu___6 + uu___20 + -> + match uu___20 with | FStar_Pervasives.Mkdtuple3 - (uu___7, + (uu___21, c1, - uu___8) + uu___22) -> + let uu___23 + = + Pulse_Syntax_Printer.comp_to_string + c1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -845,23 +901,53 @@ let (check_core : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - c1)) + uu___23) (fun - uu___9 -> + uu___24 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___25 -> Prims.strcat "Return comp is: " (Prims.strcat - uu___9 ""))))) - uu___6)))) + uu___24 + ""))))) + uu___20)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (131)) + (Prims.of_int (2)) + (Prims.of_int (134)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Return.fst" + (Prims.of_int (135)) + (Prims.of_int (2)) + (Prims.of_int (138)) + (Prims.of_int (40))))) + (Obj.magic + uu___17) (fun - uu___5 -> + uu___18 + -> (fun - uu___5 -> + uu___18 + -> + let uu___19 + = + Pulse_Checker_Prover.try_frame_pre + false g1 + ctxt () + dd + res_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -881,34 +967,32 @@ let (check_core : (Prims.of_int (138)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Checker_Prover.try_frame_pre - false g1 - ctxt () - dd - res_ppname)) + uu___19) (fun - uu___6 -> + uu___20 + -> (fun - uu___6 -> + uu___20 + -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g1 ctxt - uu___6 + uu___20 post_hint (Pulse_RuntimeUtils.range_of_term t1))) - uu___6))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___4))) - uu___3))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) uu___1))) - uu___))) uu___) + uu___20))) + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___13))) + uu___11))) + uu___10))) + uu___9))) + uu___7))) + uu___5))) uu___4))) + uu___2))) uu___1) let (check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -927,6 +1011,10 @@ let (check : fun res_ppname -> fun st -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> st.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -938,12 +1026,14 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Return.fst" (Prims.of_int (150)) (Prims.of_int (3)) (Prims.of_int (166)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> st.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_Return f -> + let uu___2 = + Pulse_Checker_Base.is_stateful_application g + f.Pulse_Syntax_Base.term in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -962,12 +1052,10 @@ let (check : (Prims.of_int (4)) (Prims.of_int (166)) (Prims.of_int (5))))) - (Obj.magic - (Pulse_Checker_Base.is_stateful_application - g f.Pulse_Syntax_Base.term)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | FStar_Pervasives_Native.Some st_app -> Obj.magic @@ -977,6 +1065,18 @@ let (check : (match post_hint with | FStar_Pervasives_Native.Some p -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + match Pulse_Syntax_Base.ctag_of_effect_annot + p.Pulse_Typing.effect_annot + with + | FStar_Pervasives_Native.Some + c -> c + | FStar_Pervasives_Native.None + -> + Pulse_Syntax_Base.STT_Atomic)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -995,17 +1095,8 @@ let (check : (Prims.of_int (8)) (Prims.of_int (162)) (Prims.of_int (73))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match Pulse_Syntax_Base.ctag_of_effect_annot - p.Pulse_Typing.effect_annot - with - | FStar_Pervasives_Native.Some - c -> c - | FStar_Pervasives_Native.None - -> - Pulse_Syntax_Base.STT_Atomic)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun ctag -> Obj.magic (check_core g @@ -1014,10 +1105,10 @@ let (check : res_ppname st (FStar_Pervasives_Native.Some ctag))) - uu___2)) - | uu___2 -> + uu___5)) + | uu___4 -> Obj.magic (check_core g ctxt () post_hint res_ppname st FStar_Pervasives_Native.None))) - uu___1))) uu___) \ No newline at end of file + uu___3))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Rewrite.ml b/src/ocaml/plugin/generated/Pulse_Checker_Rewrite.ml index e641104bf..5b9d76d96 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Rewrite.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Rewrite.ml @@ -10,6 +10,8 @@ let (check_slprop_equiv_ext : fun g -> fun p -> fun q -> + let uu___ = + Pulse_Typing_Util.check_equiv_now (Pulse_Typing.elab_env g) p q in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -20,14 +22,13 @@ let (check_slprop_equiv_ext : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (31)) Prims.int_one (Prims.of_int (40)) - (Prims.of_int (22))))) - (Obj.magic - (Pulse_Typing_Util.check_equiv_now (Pulse_Typing.elab_env g) p - q)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (22))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (res, issues) -> + let uu___2 = + FStar_Tactics_V2_Builtins.log_issues issues in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -42,15 +43,116 @@ let (check_slprop_equiv_ext : "Pulse.Checker.Rewrite.fst" (Prims.of_int (33)) (Prims.of_int (2)) (Prims.of_int (40)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues issues)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> match res with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + let uu___5 = + let uu___6 = + Pulse_PP.pp + Pulse_PP.printable_term p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (37)) + (Prims.of_int (12)) + (Prims.of_int (37)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + Pulse_PP.pp + Pulse_PP.printable_term + q in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (38)) + (Prims.of_int (12)) + (Prims.of_int (38)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 + -> + [uu___10])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 + -> uu___7 + :: uu___9)))) + uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.Rewrite.fst" + (Prims.of_int (36)) + (Prims.of_int (11)) + (Prims.of_int (38)) + (Prims.of_int (17))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + (Pulse_PP.text + "rewrite: could not prove equality of") + :: uu___6)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -67,125 +169,20 @@ let (check_slprop_equiv_ext : (Prims.of_int (4)) (Prims.of_int (38)) (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (37)) - (Prims.of_int (12)) - (Prims.of_int (37)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (38)) - (Prims.of_int (12)) - (Prims.of_int (38)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.Rewrite.fst" - (Prims.of_int (36)) - (Prims.of_int (11)) - (Prims.of_int (38)) - (Prims.of_int (17))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - [uu___3])))) - ( - fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___2 :: - uu___3)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - (Pulse_PP.text - "rewrite: could not prove equality of") - :: uu___2)))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some - r) uu___2)) uu___2))) + r) uu___5)) uu___5))) | FStar_Pervasives_Native.Some token -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) uu___1))) - uu___) + (fun uu___4 -> ())))) uu___3))) + uu___1) let (check_slprop_equiv_tac : Pulse_Syntax_Base.range -> Pulse_Typing_Env.env -> @@ -199,6 +196,22 @@ let (check_slprop_equiv_tac : fun p -> fun q -> fun tac_tm -> + let uu___ = + let uu___1 = FStar_Tactics_NamedView.inspect tac_tm in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" + (Prims.of_int (46)) (Prims.of_int (14)) + (Prims.of_int (46)) (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" + (Prims.of_int (46)) (Prims.of_int (8)) + (Prims.of_int (54)) (Prims.of_int (5))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac (fun uu___3 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -210,23 +223,15 @@ let (check_slprop_equiv_tac : (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (55)) (Prims.of_int (6)) (Prims.of_int (79)) (Prims.of_int (27))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (46)) (Prims.of_int (14)) - (Prims.of_int (46)) (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (46)) (Prims.of_int (8)) - (Prims.of_int (54)) (Prims.of_int (5))))) - (Obj.magic (FStar_Tactics_NamedView.inspect tac_tm)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + FStar_Reflection_V2_Builtins.pack_universe + FStar_Reflection_V2_Data.Uv_Zero)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -241,12 +246,15 @@ let (check_slprop_equiv_tac : "Pulse.Checker.Rewrite.fst" (Prims.of_int (56)) (Prims.of_int (52)) (Prims.of_int (79)) (Prims.of_int (27))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Reflection_V2_Builtins.pack_universe - FStar_Reflection_V2_Data.Uv_Zero)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun u0 -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Reflection_Util.stt_slprop_equiv + p q)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -265,12 +273,14 @@ let (check_slprop_equiv_tac : (Prims.of_int (58)) (Prims.of_int (79)) (Prims.of_int (27))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Reflection_Util.stt_slprop_equiv - p q)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun goal -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Typing.elab_env g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -289,11 +299,13 @@ let (check_slprop_equiv_tac : (Prims.of_int (27)) (Prims.of_int (79)) (Prims.of_int (27))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.elab_env g)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun r_env -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -312,12 +324,15 @@ let (check_slprop_equiv_tac : (Prims.of_int (4)) (Prims.of_int (79)) (Prims.of_int (27))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ())) - (fun uu___1 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun goal_typing -> + let uu___6 = + FStar_Tactics_V2_Builtins.call_subtac_tm + r_env + tac_tm u0 + goal in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -337,15 +352,12 @@ let (check_slprop_equiv_tac : (Prims.of_int (79)) (Prims.of_int (27))))) (Obj.magic - (FStar_Tactics_V2_Builtins.call_subtac_tm - r_env - tac_tm u0 - goal)) + uu___6) (fun - uu___1 -> + uu___7 -> (fun - uu___1 -> - match uu___1 + uu___7 -> + match uu___7 with | (res, @@ -358,7 +370,11 @@ let (check_slprop_equiv_tac : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + FStar_Tactics_V2_Builtins.log_issues + issues in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -376,40 +392,61 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - issues)) + uu___8) (fun - uu___2 -> + uu___9 -> (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9 -> + let uu___10 + = + let uu___11 + = + let uu___12 + = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (71)) - (Prims.of_int (11)) - (Prims.of_int (74)) - (Prims.of_int (47))))) + (Prims.of_int (72)) + (Prims.of_int (12)) + (Prims.of_int (72)) + (Prims.of_int (16))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (70)) - (Prims.of_int (4)) + (Prims.of_int (71)) + (Prims.of_int (11)) (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12) + (fun + uu___13 + -> + (fun + uu___13 + -> + let uu___14 + = + let uu___15 + = + Pulse_PP.pp + Pulse_PP.printable_term + q in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (71)) - (Prims.of_int (11)) - (Prims.of_int (74)) - (Prims.of_int (47))))) + (Prims.of_int (73)) + (Prims.of_int (12)) + (Prims.of_int (73)) + (Prims.of_int (16))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -419,41 +456,61 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + (fun + uu___16 + -> + let uu___17 + = + let uu___18 + = + let uu___19 + = + Pulse_PP.pp + Pulse_PP.printable_term + tac_tm in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (72)) - (Prims.of_int (12)) - (Prims.of_int (72)) - (Prims.of_int (16))))) + (Prims.of_int (74)) + (Prims.of_int (37)) + (Prims.of_int (74)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (71)) - (Prims.of_int (11)) (Prims.of_int (74)) - (Prims.of_int (47))))) + (Prims.of_int (12)) + (Prims.of_int (74)) + (Prims.of_int (46))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___19) (fun - uu___3 -> + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21 + -> + FStar_Pprint.op_Hat_Slash_Hat + (Pulse_PP.text + "Using tactic:") + uu___20)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (71)) - (Prims.of_int (11)) (Prims.of_int (74)) - (Prims.of_int (47))))) + (Prims.of_int (12)) + (Prims.of_int (74)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -463,15 +520,25 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic + uu___18) + (fun + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + [uu___19])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" - (Prims.of_int (73)) - (Prims.of_int (12)) - (Prims.of_int (73)) - (Prims.of_int (16))))) + (Prims.of_int (71)) + (Prims.of_int (11)) + (Prims.of_int (74)) + (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -481,13 +548,18 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - q)) + uu___17) (fun - uu___4 -> + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___19 + -> + uu___16 + :: + uu___18)))) + uu___16) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -507,15 +579,27 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + uu___13 + :: + uu___15)))) + uu___13) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" + (Prims.of_int (71)) + (Prims.of_int (11)) (Prims.of_int (74)) - (Prims.of_int (12)) - (Prims.of_int (74)) - (Prims.of_int (46))))) + (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -525,77 +609,52 @@ let (check_slprop_equiv_tac : (Prims.of_int (74)) (Prims.of_int (47))))) (Obj.magic + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + (Pulse_PP.text + "rewrite: could not prove equality of") + :: + uu___12)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" + (Prims.of_int (71)) + (Prims.of_int (11)) (Prims.of_int (74)) - (Prims.of_int (37)) - (Prims.of_int (74)) - (Prims.of_int (46))))) + (Prims.of_int (47))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" + (Prims.of_int (70)) + (Prims.of_int (4)) (Prims.of_int (74)) - (Prims.of_int (12)) - (Prims.of_int (74)) - (Prims.of_int (46))))) + (Prims.of_int (47))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - tac_tm)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_Pprint.op_Hat_Slash_Hat - (Pulse_PP.text - "Using tactic:") - uu___5)))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac + uu___10) (fun - uu___6 -> - [uu___5])))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___4 :: - uu___5)))) - uu___4))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - (Pulse_PP.text - "rewrite: could not prove equality of") - :: uu___3)))) - (fun - uu___3 -> + uu___11 + -> (fun - uu___3 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some - r) uu___3)) - uu___3))) - uu___2))) + r) + uu___11)) + uu___11))) + uu___9))) | FStar_Pervasives_Native.Some token -> @@ -603,12 +662,12 @@ let (check_slprop_equiv_tac : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___8 -> ()))))) - uu___1))) - uu___1))) - uu___1))) uu___1))) - uu___1))) uu___) + uu___7))) + uu___6))) + uu___5))) uu___4))) + uu___3))) uu___1) let rec (check_slprop_equiv : Pulse_Syntax_Base.range -> Pulse_Typing_Env.env -> @@ -644,6 +703,11 @@ let rec (check_slprop_equiv : b1.Pulse_Syntax_Base.binder_ty b2.Pulse_Syntax_Base.binder_ty) then + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.fresh g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -661,10 +725,17 @@ let rec (check_slprop_equiv : (Prims.of_int (44)) (Prims.of_int (97)) (Prims.of_int (33))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Pulse_Typing_Env.fresh g)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun x -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.push_binding + g x + b1.Pulse_Syntax_Base.binder_ppname + b1.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -683,14 +754,15 @@ let rec (check_slprop_equiv : (Prims.of_int (66)) (Prims.of_int (97)) (Prims.of_int (33))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing_Env.push_binding - g x - b1.Pulse_Syntax_Base.binder_ppname - b1.Pulse_Syntax_Base.binder_ty)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun g' -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + ((b1.Pulse_Syntax_Base.binder_ppname), + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -709,12 +781,16 @@ let rec (check_slprop_equiv : (Prims.of_int (39)) (Prims.of_int (97)) (Prims.of_int (33))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ((b1.Pulse_Syntax_Base.binder_ppname), - x))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun nx -> + let uu___4 = + check_slprop_equiv + r g' + (Pulse_Syntax_Naming.open_term_nv + t1 nx) + (Pulse_Syntax_Naming.open_term_nv + t2 nx) in Obj.magic (FStar_Tactics_Effect.tac_bind ( @@ -737,24 +813,20 @@ let rec (check_slprop_equiv : (Prims.of_int (33))))) ( Obj.magic - (check_slprop_equiv - r g' - (Pulse_Syntax_Naming.open_term_nv - t1 nx) - (Pulse_Syntax_Naming.open_term_nv - t2 nx))) + uu___4) ( fun ext -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___5 -> ())))) - uu___1))) - uu___1))) uu___1) + uu___4))) + uu___3))) uu___2) else check_slprop_equiv_ext r g p q | (Pulse_Syntax_Pure.Tm_Star (p1, p2), Pulse_Syntax_Pure.Tm_Star (q1, q2)) -> + let uu___1 = check_slprop_equiv r g p1 q1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -772,9 +844,11 @@ let rec (check_slprop_equiv : (Prims.of_int (48)) (Prims.of_int (103)) (Prims.of_int (37))))) - (Obj.magic (check_slprop_equiv r g p1 q1)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ext1 -> + let uu___2 = + check_slprop_equiv r g p2 q2 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -793,11 +867,10 @@ let rec (check_slprop_equiv : (Prims.of_int (6)) (Prims.of_int (103)) (Prims.of_int (37))))) - (Obj.magic - (check_slprop_equiv r g p2 q2)) + (Obj.magic uu___2) (fun ext2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) uu___1) + (fun uu___3 -> ())))) uu___2) | uu___1 -> check_slprop_equiv_ext r g p q))) uu___3 uu___2 uu___1 uu___ let (check : @@ -816,6 +889,12 @@ let (check : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context "check_rewrite" + t.Pulse_Syntax_Base.range1 g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -827,12 +906,13 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (118)) (Prims.of_int (51)) (Prims.of_int (134)) (Prims.of_int (122))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "check_rewrite" - t.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -847,16 +927,17 @@ let (check : "Pulse.Checker.Rewrite.fst" (Prims.of_int (118)) (Prims.of_int (51)) (Prims.of_int (134)) (Prims.of_int (122))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_Rewrite { Pulse_Syntax_Base.t11 = p; Pulse_Syntax_Base.t21 = q; Pulse_Syntax_Base.tac_opt2 = tac_opt;_} -> + let uu___3 = + Pulse_Checker_Pure.check_slprop g1 p in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -875,14 +956,15 @@ let (check : (Prims.of_int (50)) (Prims.of_int (134)) (Prims.of_int (122))))) - (Obj.magic - (Pulse_Checker_Pure.check_slprop - g1 p)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (p1, p_typing) -> + let uu___5 = + Pulse_Checker_Pure.check_slprop + g1 q in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -901,17 +983,32 @@ let (check : (Prims.of_int (45)) (Prims.of_int (134)) (Prims.of_int (122))))) - (Obj.magic - (Pulse_Checker_Pure.check_slprop - g1 q)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | Prims.Mkdtuple2 (q1, q_typing) -> + let uu___7 + = + match tac_opt + with + | + FStar_Pervasives_Native.None + -> + check_slprop_equiv + t.Pulse_Syntax_Base.range1 + g1 p1 q1 + | + FStar_Pervasives_Native.Some + tac -> + check_slprop_equiv_tac + t.Pulse_Syntax_Base.range1 + g1 p1 q1 + tac in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -930,28 +1027,23 @@ let (check : (Prims.of_int (4)) (Prims.of_int (134)) (Prims.of_int (122))))) - (match tac_opt - with - | - FStar_Pervasives_Native.None - -> - Obj.magic - (check_slprop_equiv - t.Pulse_Syntax_Base.range1 - g1 p1 q1) - | - FStar_Pervasives_Native.Some - tac -> - Obj.magic - (check_slprop_equiv_tac - t.Pulse_Syntax_Base.range1 - g1 p1 q1 - tac)) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> (fun equiv_p_q -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Typing.T_Rewrite + (g1, p1, + q1, (), + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -970,94 +1062,99 @@ let (check : Prims.int_one (Prims.of_int (134)) (Prims.of_int (122))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing.T_Rewrite - (g1, p1, - q1, (), - ()))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun d -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + let uu___10 + = + Pulse_Checker_Base.match_comp_res_with_post_hint + g1 + (Pulse_Typing.wtag + (FStar_Pervasives_Native.Some + Pulse_Syntax_Base.STT_Ghost) + (Pulse_Syntax_Base.Tm_Rewrite + { + Pulse_Syntax_Base.t11 + = p1; + Pulse_Syntax_Base.t21 + = q1; + Pulse_Syntax_Base.tac_opt2 + = + FStar_Pervasives_Native.None + })) + (Pulse_Typing.comp_rewrite + p1 q1) d + post_hint in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (134)) - (Prims.of_int (17)) + (Prims.of_int (49)) (Prims.of_int (134)) - (Prims.of_int (104))))) + (Prims.of_int (92))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (134)) - Prims.int_one + (Prims.of_int (17)) (Prims.of_int (134)) - (Prims.of_int (122))))) + (Prims.of_int (104))))) (Obj.magic + uu___10) + (fun + uu___11 + -> + (fun + uu___11 + -> + Obj.magic + (Pulse_Checker_Prover.try_frame_pre + false g + pre () + uu___11 + res_ppname)) + uu___11) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (134)) - (Prims.of_int (49)) + (Prims.of_int (17)) (Prims.of_int (134)) - (Prims.of_int (92))))) + (Prims.of_int (104))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.Rewrite.fst" (Prims.of_int (134)) - (Prims.of_int (17)) + Prims.int_one (Prims.of_int (134)) - (Prims.of_int (104))))) + (Prims.of_int (122))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint - g1 - (Pulse_Typing.wtag - (FStar_Pervasives_Native.Some - Pulse_Syntax_Base.STT_Ghost) - (Pulse_Syntax_Base.Tm_Rewrite - { - Pulse_Syntax_Base.t11 - = p1; - Pulse_Syntax_Base.t21 - = q1; - Pulse_Syntax_Base.tac_opt2 - = - FStar_Pervasives_Native.None - })) - (Pulse_Typing.comp_rewrite - p1 q1) d - post_hint)) - (fun - uu___3 -> + uu___9) (fun - uu___3 -> - Obj.magic - (Pulse_Checker_Prover.try_frame_pre - false g - pre () - uu___3 - res_ppname)) - uu___3))) - (fun - uu___3 -> + uu___10 + -> (fun - uu___3 -> + uu___10 + -> Obj.magic (Pulse_Checker_Prover.prove_post_hint g pre - uu___3 + uu___10 post_hint t.Pulse_Syntax_Base.range1)) - uu___3))) - uu___3))) - uu___3))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___10))) + uu___9))) + uu___8))) + uu___6))) + uu___4))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_STApp.ml b/src/ocaml/plugin/generated/Pulse_Checker_STApp.ml index 01fd1658f..1225d9cea 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_STApp.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_STApp.ml @@ -66,6 +66,10 @@ let rec (intro_uvars_for_logical_implicits : fun uvs -> fun t -> fun ty -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Syntax_Pure.is_arrow ty)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -77,15 +81,20 @@ let rec (intro_uvars_for_logical_implicits : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (67)) (Prims.of_int (2)) (Prims.of_int (90)) (Prims.of_int (31))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Pure.is_arrow ty)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ropt -> match ropt with | FStar_Pervasives_Native.Some (b, FStar_Pervasives_Native.Some (Pulse_Syntax_Base.Implicit), c_rest) -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.fresh + (Pulse_Typing_Env.push_env g uvs))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -100,12 +109,12 @@ let rec (intro_uvars_for_logical_implicits : "Pulse.Checker.STApp.fst" (Prims.of_int (69)) (Prims.of_int (37)) (Prims.of_int (85)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.fresh - (Pulse_Typing_Env.push_env g uvs))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun x -> + let uu___2 = + Pulse_Syntax_Base.ppname_for_uvar + b.Pulse_Syntax_Base.binder_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -124,11 +133,16 @@ let rec (intro_uvars_for_logical_implicits : (Prims.of_int (51)) (Prims.of_int (85)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Syntax_Base.ppname_for_uvar - b.Pulse_Syntax_Base.binder_ppname)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun ppname -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing_Env.push_binding + uvs x ppname + b.Pulse_Syntax_Base.binder_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -147,13 +161,19 @@ let rec (intro_uvars_for_logical_implicits : (Prims.of_int (55)) (Prims.of_int (85)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_binding - uvs x ppname - b.Pulse_Syntax_Base.binder_ty)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun uvs' -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + { + Pulse_Syntax_Base.nm_index + = x; + Pulse_Syntax_Base.nm_ppname + = ppname + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -172,16 +192,17 @@ let rec (intro_uvars_for_logical_implicits : (Prims.of_int (51)) (Prims.of_int (85)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - { - Pulse_Syntax_Base.nm_index - = x; - Pulse_Syntax_Base.nm_ppname - = ppname - })) - (fun uu___ -> + (Obj.magic uu___4) + (fun uu___5 -> (fun var -> + let uu___5 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___6 -> + Pulse_Syntax_Pure.tm_var + var)) in Obj.magic ( FStar_Tactics_Effect.tac_bind @@ -201,15 +222,21 @@ let rec (intro_uvars_for_logical_implicits : (Prims.of_int (29)) (Prims.of_int (85)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___ -> - Pulse_Syntax_Pure.tm_var - var)) + (Obj.magic + uu___5) (fun - uu___ -> + uu___6 -> (fun t_var -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Syntax_Naming.open_comp_with + c_rest + t_var)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -228,14 +255,10 @@ let rec (intro_uvars_for_logical_implicits : (Prims.of_int (6)) (Prims.of_int (84)) (Prims.of_int (89))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___ -> - Pulse_Syntax_Naming.open_comp_with - c_rest - t_var)) + (Obj.magic + uu___6) (fun - uu___ -> + uu___7 -> (fun c_rest1 -> @@ -243,12 +266,12 @@ let rec (intro_uvars_for_logical_implicits : with | Pulse_Syntax_Base.C_ST - uu___ -> + uu___7 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___8 -> FStar_Pervasives.Mkdtuple3 (uvs', (Pulse_Typing_Env.push_env @@ -279,15 +302,16 @@ let rec (intro_uvars_for_logical_implicits : })))) | Pulse_Syntax_Base.C_STAtomic - (uu___, - uu___1, - uu___2) + (uu___7, + uu___8, + uu___9) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> FStar_Pervasives.Mkdtuple3 (uvs', (Pulse_Typing_Env.push_env @@ -318,14 +342,14 @@ let rec (intro_uvars_for_logical_implicits : })))) | Pulse_Syntax_Base.C_STGhost - (uu___, - uu___1) + (uu___7, + uu___8) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> FStar_Pervasives.Mkdtuple3 (uvs', (Pulse_Typing_Env.push_env @@ -367,11 +391,33 @@ let rec (intro_uvars_for_logical_implicits : Pulse_Syntax_Base.Implicit) t_var) ty1))) - uu___))) - uu___))) - uu___))) - uu___))) uu___))) uu___)) - | uu___ -> + uu___7))) + uu___6))) + uu___5))) + uu___4))) uu___3))) + uu___2)) + | uu___1 -> + let uu___2 = + let uu___3 = Pulse_Syntax_Printer.term_to_string ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (90)) (Prims.of_int (9)) + (Prims.of_int (90)) (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.strcat + "check_stapp.intro_uvars_for_logical_implicits: expected an arrow type,with an implicit parameter, found: " + (Prims.strcat uu___4 ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -386,37 +432,13 @@ let rec (intro_uvars_for_logical_implicits : "Pulse.Checker.STApp.fst" (Prims.of_int (87)) (Prims.of_int (4)) (Prims.of_int (90)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (90)) - (Prims.of_int (9)) - (Prims.of_int (90)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string ty)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "check_stapp.intro_uvars_for_logical_implicits: expected an arrow type,with an implicit parameter, found: " - (Prims.strcat uu___1 ""))))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> Obj.magic (Pulse_Typing_Env.fail g - FStar_Pervasives_Native.None uu___1)) - uu___1))) uu___) + FStar_Pervasives_Native.None uu___3)) + uu___3))) uu___1) let (instantiate_implicits : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -426,6 +448,10 @@ let (instantiate_implicits : = fun g -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -436,11 +462,13 @@ let (instantiate_implicits : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (97)) (Prims.of_int (24)) (Prims.of_int (112)) - (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Prims.of_int (20))))) (Obj.magic uu___) + (fun uu___1 -> (fun range -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -453,16 +481,21 @@ let (instantiate_implicits : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (97)) (Prims.of_int (24)) (Prims.of_int (112)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_STApp { Pulse_Syntax_Base.head = head; Pulse_Syntax_Base.arg_qual = qual; Pulse_Syntax_Base.arg = arg;_} -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Syntax_Pure.tm_pureapp head qual + arg)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -481,12 +514,12 @@ let (instantiate_implicits : (Prims.of_int (44)) (Prims.of_int (112)) (Prims.of_int (20))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Syntax_Pure.tm_pureapp head - qual arg)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun pure_app -> + let uu___4 = + Pulse_Checker_Pure.instantiate_term_implicits_uvs + g pure_app in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -505,29 +538,27 @@ let (instantiate_implicits : (Prims.of_int (44)) (Prims.of_int (112)) (Prims.of_int (20))))) - (Obj.magic - (Pulse_Checker_Pure.instantiate_term_implicits_uvs - g pure_app)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | FStar_Pervasives.Mkdtuple3 (uvs, t1, ty) -> (match Pulse_Syntax_Pure.is_arrow ty with | FStar_Pervasives_Native.Some - (uu___2, + (uu___6, FStar_Pervasives_Native.Some (Pulse_Syntax_Base.Implicit), - uu___3) + uu___7) -> Obj.magic (Obj.repr (intro_uvars_for_logical_implicits g uvs t1 ty)) - | uu___2 -> + | uu___6 -> Obj.magic (Obj.repr (match @@ -541,7 +572,7 @@ let (instantiate_implicits : Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___7 -> FStar_Pervasives.Mkdtuple3 (uvs, (Pulse_Typing_Env.push_env @@ -566,27 +597,16 @@ let (instantiate_implicits : = Pulse_Syntax_Base.default_effect_hint }))) - | uu___3 -> + | uu___7 -> Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (111)) - (Prims.of_int (8)) - (Prims.of_int (112)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (110)) - (Prims.of_int (6)) - (Prims.of_int (112)) - (Prims.of_int (20))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + let uu___9 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + t1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -604,36 +624,60 @@ let (instantiate_implicits : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - t1)) + uu___9) (fun - uu___4 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___11 + -> Prims.strcat "check_stapp.instantiate_implicits: expected an application term, found: " (Prims.strcat - uu___4 ""))))) + uu___10 + ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (111)) + (Prims.of_int (8)) + (Prims.of_int (112)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (110)) + (Prims.of_int (6)) + (Prims.of_int (112)) + (Prims.of_int (20))))) + (Obj.magic + uu___8) (fun - uu___4 -> + uu___9 -> (fun - uu___4 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term t1)) - uu___4)) - uu___4)))))) - uu___1))) uu___1))) uu___))) - uu___) + uu___9)) + uu___9)))))) + uu___5))) uu___4))) uu___2))) + uu___1) let (should_allow_ambiguous : Pulse_Syntax_Base.term -> (Prims.bool, unit) FStar_Tactics_Effect.tac_repr) = fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> "Pulse.Lib.Core.allow_ambiguous")) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -644,11 +688,10 @@ let (should_allow_ambiguous : (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (118)) (Prims.of_int (2)) (Prims.of_int (125)) - (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> "Pulse.Lib.Core.allow_ambiguous")) - (fun uu___ -> + (Prims.of_int (57))))) (Obj.magic uu___) + (fun uu___1 -> (fun attr_name -> + let uu___1 = FStar_Tactics_V2_SyntaxHelpers.hua t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -661,20 +704,48 @@ let (should_allow_ambiguous : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (118)) (Prims.of_int (2)) (Prims.of_int (125)) (Prims.of_int (57))))) - (Obj.magic (FStar_Tactics_V2_SyntaxHelpers.hua t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> false))) - | FStar_Pervasives_Native.Some (hfv, uu___1, uu___2) + (fun uu___3 -> false))) + | FStar_Pervasives_Native.Some (hfv, uu___3, uu___4) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + let uu___6 = + FStar_Tactics_V2_Builtins.top_env () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (121)) + (Prims.of_int (23)) + (Prims.of_int (121)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (121)) + (Prims.of_int (10)) + (Prims.of_int (121)) + (Prims.of_int (56))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Reflection_V2_Builtins.lookup_typ + uu___7 + (FStar_Reflection_V2_Builtins.inspect_fv + hfv))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -691,46 +762,25 @@ let (should_allow_ambiguous : (Prims.of_int (4)) (Prims.of_int (125)) (Prims.of_int (57))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (121)) - (Prims.of_int (23)) - (Prims.of_int (121)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (121)) - (Prims.of_int (10)) - (Prims.of_int (121)) - (Prims.of_int (56))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.top_env - ())) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_Reflection_V2_Builtins.lookup_typ - uu___3 - (FStar_Reflection_V2_Builtins.inspect_fv - hfv))))) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 with + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + match uu___6 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> false))) + (fun uu___7 -> false))) | FStar_Pervasives_Native.Some se -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___7 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Reflection_V2_Builtins.sigelt_attrs + se)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -747,28 +797,25 @@ let (should_allow_ambiguous : (Prims.of_int (6)) (Prims.of_int (125)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_Reflection_V2_Builtins.sigelt_attrs - se)) - (fun uu___4 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun attrs -> Obj.magic (FStar_Tactics_Util.tryFind - (fun uu___4 + (fun uu___8 -> (fun a -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> FStar_Reflection_V2_Derived.is_fvar a attr_name))) - uu___4) + uu___8) attrs)) - uu___4)))) uu___3)))) - uu___))) uu___) + uu___8)))) uu___6)))) + uu___2))) uu___1) let (apply_impure_function : Pulse_Syntax_Base.range -> Pulse_Typing_Env.env -> @@ -808,6 +855,10 @@ let (apply_impure_function : fun eff_head -> fun dhead -> fun b -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> b)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -825,19 +876,22 @@ let (apply_impure_function : (Prims.of_int (3)) (Prims.of_int (225)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> b)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | ({ Pulse_Syntax_Base.binder_ty = formal; Pulse_Syntax_Base.binder_ppname = ppname; Pulse_Syntax_Base.binder_attrs = - uu___1;_}, + uu___2;_}, bqual, comp_typ) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> post_hint)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -856,10 +910,12 @@ let (apply_impure_function : (Prims.of_int (50)) (Prims.of_int (225)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> post_hint)) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun post_hint1 -> + let uu___4 = + should_allow_ambiguous + head in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -878,79 +934,123 @@ let (apply_impure_function : (Prims.of_int (4)) (Prims.of_int (225)) (Prims.of_int (5))))) - (Obj.magic - (should_allow_ambiguous - head)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun allow_ambiguous -> - Obj.magic - ( + let uu___5 + = + debug_log + g + (fun + uu___6 -> + let uu___7 + = + let uu___8 + = + Pulse_Syntax_Printer.comp_to_string + comp_typ in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (150)) - (Prims.of_int (4)) (Prims.of_int (154)) - (Prims.of_int (46))))) + (Prims.of_int (17)) + (Prims.of_int (154)) + (Prims.of_int (44))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" + (Prims.of_int (151)) + (Prims.of_int (14)) (Prims.of_int (154)) - (Prims.of_int (47)) - (Prims.of_int (225)) - (Prims.of_int (5))))) + (Prims.of_int (45))))) (Obj.magic - (debug_log - g + uu___8) + (fun + uu___9 -> (fun - uu___2 -> + uu___9 -> + let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + arg in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (151)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (45))))) + (Prims.of_int (153)) + (Prims.of_int (17)) + (Prims.of_int (153)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (151)) - (Prims.of_int (6)) + (Prims.of_int (14)) (Prims.of_int (154)) (Prims.of_int (45))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.term_to_string + head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (154)) + (Prims.of_int (152)) (Prims.of_int (17)) - (Prims.of_int (154)) - (Prims.of_int (44))))) + (Prims.of_int (152)) + (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (151)) - (Prims.of_int (14)) - (Prims.of_int (154)) - (Prims.of_int (45))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - comp_typ)) + uu___14) (fun - uu___3 -> + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___16 + -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "st_app, head=" + (Prims.strcat + uu___15 + ", arg=")) + (Prims.strcat + x + ", readback comp as ")) + (Prims.strcat + x1 "\n"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -970,15 +1070,27 @@ let (apply_impure_function : (Prims.of_int (154)) (Prims.of_int (45))))) (Obj.magic + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + uu___14 + uu___12)))) + uu___12) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (153)) - (Prims.of_int (17)) - (Prims.of_int (153)) - (Prims.of_int (39))))) + (Prims.of_int (151)) + (Prims.of_int (14)) + (Prims.of_int (154)) + (Prims.of_int (45))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -988,14 +1100,18 @@ let (apply_impure_function : (Prims.of_int (154)) (Prims.of_int (45))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - arg)) + uu___10) (fun - uu___4 -> + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12 + -> + uu___11 + uu___9)))) + uu___9) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1009,77 +1125,52 @@ let (apply_impure_function : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (151)) - (Prims.of_int (14)) + (Prims.of_int (6)) (Prims.of_int (154)) (Prims.of_int (45))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___7) + (fun + uu___8 -> + (fun + uu___8 -> + Obj.magic + (FStar_Tactics_V2_Builtins.print + uu___8)) + uu___8)) in + Obj.magic + ( + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (152)) - (Prims.of_int (17)) - (Prims.of_int (152)) - (Prims.of_int (40))))) + (Prims.of_int (150)) + (Prims.of_int (4)) + (Prims.of_int (154)) + (Prims.of_int (46))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (154)) + (Prims.of_int (47)) + (Prims.of_int (225)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - head)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac + uu___5) (fun uu___6 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "st_app, head=" - (Prims.strcat - uu___5 - ", arg=")) - (Prims.strcat - x - ", readback comp as ")) - (Prims.strcat - x1 "\n"))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac (fun uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___4 - uu___3)))) - uu___3))) - (fun - uu___3 -> - (fun - uu___3 -> + let uu___7 + = Obj.magic - (FStar_Tactics_V2_Builtins.print - uu___3)) - uu___3)))) + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - (fun - uu___2 -> + uu___8 -> + Pulse_Syntax_Base.uu___is_C_STGhost + comp_typ)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1098,35 +1189,16 @@ let (apply_impure_function : (Prims.of_int (4)) (Prims.of_int (225)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Syntax_Base.uu___is_C_STGhost - comp_typ)) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> (fun allow_ghost -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (157)) - (Prims.of_int (4)) - (Prims.of_int (161)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (163)) - (Prims.of_int (4)) - (Prims.of_int (225)) - (Prims.of_int (5))))) - (if + let uu___8 + = + if (Prims.op_Negation allow_ghost) && @@ -1136,25 +1208,13 @@ let (apply_impure_function : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (160)) - (Prims.of_int (11)) - (Prims.of_int (161)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (159)) - (Prims.of_int (9)) - (Prims.of_int (161)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + let uu___10 + = + Pulse_Syntax_Printer.term_to_string + head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1172,64 +1232,93 @@ let (apply_impure_function : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - head)) + uu___10) (fun - uu___3 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___12 + -> Prims.strcat "head term " (Prims.strcat - uu___3 - " is ghost, but the arrow comp is not STGhost"))))) + uu___11 + " is ghost, but the arrow comp is not STGhost"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (160)) + (Prims.of_int (11)) + (Prims.of_int (161)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (159)) + (Prims.of_int (9)) + (Prims.of_int (161)) + (Prims.of_int (38))))) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> (fun - uu___3 -> + uu___10 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some range) - uu___3)) - uu___3))) + uu___10)) + uu___10))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - ())))) - (fun - uu___3 -> - (fun - uu___3 -> - if - qual <> - bqual - then + uu___10 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (165)) - (Prims.of_int (25)) - (Prims.of_int (168)) - (Prims.of_int (39))))) + (Prims.of_int (157)) + (Prims.of_int (4)) + (Prims.of_int (161)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (164)) - (Prims.of_int (9)) - (Prims.of_int (170)) + (Prims.of_int (163)) + (Prims.of_int (4)) + (Prims.of_int (225)) (Prims.of_int (5))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + (fun + uu___9 -> + if + qual <> + bqual + then + let uu___10 + = + let uu___11 + = + Pulse_Syntax_Printer.term_to_string + arg in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1247,21 +1336,27 @@ let (apply_impure_function : (Prims.of_int (168)) (Prims.of_int (39))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - arg)) + uu___11) (fun - uu___4 -> + uu___12 + -> (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___12 + -> + let uu___13 + = + let uu___14 + = + Pulse_Syntax_Printer.term_to_string + head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (165)) - (Prims.of_int (25)) - (Prims.of_int (168)) + (Prims.of_int (167)) + (Prims.of_int (16)) + (Prims.of_int (167)) (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic @@ -1272,14 +1367,68 @@ let (apply_impure_function : (Prims.of_int (168)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + (fun + uu___15 + -> + let uu___16 + = + let uu___17 + = + Pulse_Syntax_Printer.term_to_string + ty_head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (167)) + (Prims.of_int (166)) (Prims.of_int (16)) - (Prims.of_int (167)) + (Prims.of_int (166)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic + uu___17) + (fun + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "Unexpected qualifier in head type " + (Prims.strcat + uu___18 + " of stateful application: head = ")) + (Prims.strcat + x + ", arg = ")) + (Prims.strcat + x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (165)) + (Prims.of_int (25)) + (Prims.of_int (168)) (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic @@ -1290,12 +1439,17 @@ let (apply_impure_function : (Prims.of_int (168)) (Prims.of_int (39))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - head)) + uu___16) (fun - uu___5 -> + uu___17 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___18 + -> + uu___17 + uu___15)))) + uu___15) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1315,73 +1469,64 @@ let (apply_impure_function : (Prims.of_int (168)) (Prims.of_int (39))))) (Obj.magic + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + uu___14 + uu___12)))) + uu___12) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (166)) - (Prims.of_int (16)) - (Prims.of_int (166)) - (Prims.of_int (42))))) + (Prims.of_int (165)) + (Prims.of_int (25)) + (Prims.of_int (168)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (164)) + (Prims.of_int (9)) + (Prims.of_int (170)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty_head)) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "Unexpected qualifier in head type " - (Prims.strcat - uu___6 - " of stateful application: head = ")) - (Prims.strcat - x - ", arg = ")) - (Prims.strcat - x1 ""))))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___6 - uu___5)))) - uu___5))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac + uu___10) (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some range) - uu___4)) - uu___4)) + uu___11)) + uu___11)) else + (let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + if + allow_ghost + then + FStar_TypeChecker_Core.E_Ghost + else + FStar_TypeChecker_Core.E_Total)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1400,20 +1545,20 @@ let (apply_impure_function : (Prims.of_int (67)) (Prims.of_int (224)) (Prims.of_int (51))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - if - allow_ghost - then - FStar_TypeChecker_Core.E_Ghost - else - FStar_TypeChecker_Core.E_Total)) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun eff_arg -> + let uu___12 + = + Pulse_Checker_Pure.check_term + g arg + eff_arg + formal in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1433,39 +1578,22 @@ let (apply_impure_function : (Prims.of_int (224)) (Prims.of_int (51))))) (Obj.magic - (Pulse_Checker_Pure.check_term - g arg - eff_arg - formal)) + uu___12) (fun - uu___5 -> + uu___13 + -> (fun - uu___5 -> - match uu___5 + uu___13 + -> + match uu___13 with | Prims.Mkdtuple2 (arg1, darg) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (175)) - (Prims.of_int (8)) - (Prims.of_int (218)) - (Prims.of_int (108))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (173)) - (Prims.of_int (62)) - (Prims.of_int (224)) - (Prims.of_int (51))))) - (match comp_typ + let uu___14 + = + match comp_typ with | Pulse_Syntax_Base.C_ST @@ -1474,7 +1602,8 @@ let (apply_impure_function : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___15 + -> FStar_Pervasives.Mkdtuple3 ({ Pulse_Syntax_Base.term1 @@ -1525,14 +1654,15 @@ let (apply_impure_function : ()))))))) | Pulse_Syntax_Base.C_STAtomic - (uu___6, - uu___7, + (uu___15, + uu___16, res) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___17 + -> FStar_Pervasives.Mkdtuple3 ({ Pulse_Syntax_Base.term1 @@ -1583,11 +1713,20 @@ let (apply_impure_function : ()))))))) | Pulse_Syntax_Base.C_STGhost - (uu___6, + (uu___15, res) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Typing_Env.fresh + g)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1604,33 +1743,15 @@ let (apply_impure_function : (Prims.of_int (10)) (Prims.of_int (215)) (Prims.of_int (23))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing_Env.fresh - g)) + (Obj.magic + uu___16) (fun - uu___7 -> + uu___17 + -> (fun x -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (188)) - (Prims.of_int (10)) - (Prims.of_int (190)) - (Prims.of_int (81))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (190)) - (Prims.of_int (82)) - (Prims.of_int (215)) - (Prims.of_int (23))))) - (if + let uu___17 + = + if FStar_Set.mem x (Pulse_Syntax_Naming.freevars_comp @@ -1648,32 +1769,48 @@ let (apply_impure_function : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - ())))) - (fun - uu___7 -> - (fun - uu___7 -> + uu___19 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (195)) - (Prims.of_int (26)) - (Prims.of_int (205)) - (Prims.of_int (50))))) + (Prims.of_int (188)) + (Prims.of_int (10)) + (Prims.of_int (190)) + (Prims.of_int (81))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (215)) - (Prims.of_int (10)) + (Prims.of_int (190)) + (Prims.of_int (82)) (Prims.of_int (215)) (Prims.of_int (23))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___17) + (fun + uu___18 + -> + (fun + uu___18 + -> + let uu___19 + = + let uu___20 + = + Pulse_Checker_Pure.is_non_informative + (Pulse_Typing_Env.push_binding + g x + Pulse_Syntax_Base.ppname_default + formal) + (Pulse_Syntax_Naming.open_comp_with + comp_typ + (Pulse_Syntax_Pure.null_var + x)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1691,17 +1828,10 @@ let (apply_impure_function : (Prims.of_int (205)) (Prims.of_int (50))))) (Obj.magic - (Pulse_Checker_Pure.is_non_informative - (Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - formal) - (Pulse_Syntax_Naming.open_comp_with - comp_typ - (Pulse_Syntax_Pure.null_var - x)))) + uu___20) (fun - uu___8 -> + uu___21 + -> (fun token -> match token @@ -1711,64 +1841,75 @@ let (apply_impure_function : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___21 + = + let uu___22 + = + Pulse_Syntax_Printer.comp_to_string + comp_typ in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (202)) - (Prims.of_int (16)) + (Prims.of_int (75)) (Prims.of_int (202)) - (Prims.of_int (103))))) + (Prims.of_int (102))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (201)) - (Prims.of_int (14)) - (Prims.of_int (202)) - (Prims.of_int (103))))) + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + Prims.strcat + "Unexpected non-informative result for " + (Prims.strcat + uu___23 + ""))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (202)) - (Prims.of_int (75)) + (Prims.of_int (16)) (Prims.of_int (202)) - (Prims.of_int (102))))) + (Prims.of_int (103))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (201)) + (Prims.of_int (14)) + (Prims.of_int (202)) + (Prims.of_int (103))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - comp_typ)) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac + uu___21) (fun - uu___9 -> - Prims.strcat - "Unexpected non-informative result for " - (Prims.strcat - uu___8 ""))))) - (fun - uu___8 -> + uu___22 + -> (fun - uu___8 -> + uu___22 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some range) - uu___8)) - uu___8))) + uu___22)) + uu___22))) | FStar_Pervasives_Native.Some token1 -> @@ -1776,7 +1917,8 @@ let (apply_impure_function : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___21 + -> FStar_Reflection_Typing.Non_informative_token ((Pulse_Typing.elab_env (Pulse_Typing_Env.push_binding @@ -1788,13 +1930,34 @@ let (apply_impure_function : comp_typ (Pulse_Syntax_Pure.null_var x))), ()))))) - uu___8))) + uu___21) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (195)) + (Prims.of_int (26)) + (Prims.of_int (205)) + (Prims.of_int (50))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (215)) + (Prims.of_int (10)) + (Prims.of_int (215)) + (Prims.of_int (23))))) + (Obj.magic + uu___19) (fun d_non_info -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___20 + -> FStar_Pervasives.Mkdtuple3 ({ Pulse_Syntax_Base.term1 @@ -1843,27 +2006,58 @@ let (apply_impure_function : arg1, x, (), (), ())))))))) - uu___7))) - uu___7))) + uu___18))) + uu___17))) | - uu___6 -> + uu___15 + -> Obj.magic (Obj.repr (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some range) - "Expected an effectful application; got a pure term (could it be partially applied by mistake?)"))) + "Expected an effectful application; got a pure term (could it be partially applied by mistake?)")) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (175)) + (Prims.of_int (8)) + (Prims.of_int (218)) + (Prims.of_int (108))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.STApp.fst" + (Prims.of_int (173)) + (Prims.of_int (62)) + (Prims.of_int (224)) + (Prims.of_int (51))))) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun - uu___6 -> - match uu___6 + uu___15 + -> + match uu___15 with | FStar_Pervasives.Mkdtuple3 (t, c, d) -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + uu___15)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1882,14 +2076,19 @@ let (apply_impure_function : (Prims.of_int (8)) (Prims.of_int (224)) (Prims.of_int (51))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - uu___6)) + (Obj.magic + uu___16) (fun - uu___7 -> + uu___17 + -> (fun - uu___7 -> + uu___17 + -> + let uu___18 + = + Pulse_Checker_Base.match_comp_res_with_post_hint + g t c d + post_hint1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1909,70 +2108,111 @@ let (apply_impure_function : (Prims.of_int (224)) (Prims.of_int (51))))) (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint - g t c d - post_hint1)) + uu___18) (fun - uu___8 -> + uu___19 + -> (fun - uu___8 -> - match uu___8 + uu___19 + -> + match uu___19 with | FStar_Pervasives.Mkdtuple3 (st', c', st_typing') -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___20 + = + debug_log + g + (fun + uu___21 + -> + let uu___22 + = + let uu___23 + = + Pulse_Show.show + Pulse_Show.tac_showable_bool + allow_ambiguous in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (221)) - (Prims.of_int (6)) (Prims.of_int (222)) - (Prims.of_int (79))))) + (Prims.of_int (55)) + (Prims.of_int (222)) + (Prims.of_int (77))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" + (Prims.of_int (221)) + (Prims.of_int (36)) (Prims.of_int (222)) - (Prims.of_int (80)) - (Prims.of_int (224)) - (Prims.of_int (51))))) + (Prims.of_int (78))))) (Obj.magic - (debug_log - g + uu___23) (fun - uu___9 -> + uu___24 + -> + (fun + uu___24 + -> + let uu___25 + = + let uu___26 + = + Pulse_Show.show + Pulse_Show.tac_showable_comp + c' in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (221)) - (Prims.of_int (36)) (Prims.of_int (222)) - (Prims.of_int (78))))) + (Prims.of_int (39)) + (Prims.of_int (222)) + (Prims.of_int (54))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (221)) - (Prims.of_int (28)) - (Prims.of_int (222)) - (Prims.of_int (78))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + fun x -> + Prims.strcat + (Prims.strcat + "st_app: c' = " + (Prims.strcat + uu___27 + "\n\tallow_ambiguous = ")) + (Prims.strcat + x "\n"))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" + (Prims.of_int (221)) + (Prims.of_int (36)) (Prims.of_int (222)) - (Prims.of_int (55)) - (Prims.of_int (222)) - (Prims.of_int (77))))) + (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1982,17 +2222,18 @@ let (apply_impure_function : (Prims.of_int (222)) (Prims.of_int (78))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_bool - allow_ambiguous)) + uu___25) (fun - uu___10 + uu___26 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___27 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26 + uu___24)))) + uu___24) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2006,71 +2247,57 @@ let (apply_impure_function : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (221)) - (Prims.of_int (36)) + (Prims.of_int (28)) (Prims.of_int (222)) (Prims.of_int (78))))) (Obj.magic + uu___22) + (fun + uu___23 + -> + (fun + uu___23 + -> + Obj.magic + (FStar_Tactics_V2_Builtins.print + uu___23)) + uu___23)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" + (Prims.of_int (221)) + (Prims.of_int (6)) (Prims.of_int (222)) - (Prims.of_int (39)) - (Prims.of_int (222)) - (Prims.of_int (54))))) + (Prims.of_int (79))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (222)) + (Prims.of_int (80)) + (Prims.of_int (224)) + (Prims.of_int (51))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_comp - c')) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - fun x -> - Prims.strcat - (Prims.strcat - "st_app: c' = " - (Prims.strcat - uu___11 - "\n\tallow_ambiguous = ")) - (Prims.strcat - x "\n"))))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - uu___11 - uu___10)))) - uu___10))) + uu___20) (fun - uu___10 + uu___21 -> (fun - uu___10 + uu___21 -> - Obj.magic - (FStar_Tactics_V2_Builtins.print - uu___10)) - uu___10)))) - (fun - uu___9 -> - (fun - uu___9 -> + let uu___22 + = + Pulse_Checker_Prover.try_frame_pre_uvs + allow_ambiguous + g0 ctxt + () uvs + (FStar_Pervasives.Mkdtuple3 + (st', c', + st_typing')) + res_ppname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2090,16 +2317,9 @@ let (apply_impure_function : (Prims.of_int (224)) (Prims.of_int (51))))) (Obj.magic - (Pulse_Checker_Prover.try_frame_pre_uvs - allow_ambiguous - g0 ctxt - () uvs - (FStar_Pervasives.Mkdtuple3 - (st', c', - st_typing')) - res_ppname)) + uu___22) (fun - uu___10 + uu___23 -> (fun framed -> @@ -2109,18 +2329,18 @@ let (apply_impure_function : framed post_hint1 range)) - uu___10))) + uu___23))) + uu___21))) + uu___19))) + uu___17))) + uu___15))) + uu___13))) + uu___12)))) uu___9))) uu___8))) - uu___7))) uu___6))) - uu___5))) - uu___5))) - uu___3))) - uu___3))) - uu___2))) - uu___2))) - uu___2))) uu___) + uu___5))) + uu___4))) uu___1) let (check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -2137,6 +2357,12 @@ let (check : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context "st_app" + t.Pulse_Syntax_Base.range1 g0)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2148,12 +2374,13 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (237)) (Prims.of_int (46)) (Prims.of_int (268)) (Prims.of_int (117))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "st_app" - t.Pulse_Syntax_Base.range1 g0)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g01 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.range1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2168,10 +2395,10 @@ let (check : "Pulse.Checker.STApp.fst" (Prims.of_int (238)) (Prims.of_int (24)) (Prims.of_int (268)) (Prims.of_int (117))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun range -> + let uu___2 = instantiate_implicits g01 t in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2190,13 +2417,17 @@ let (check : (Prims.of_int (24)) (Prims.of_int (268)) (Prims.of_int (117))))) - (Obj.magic - (instantiate_implicits g01 t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | FStar_Pervasives.Mkdtuple3 (uvs, g, t1) -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + post_hint)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2215,11 +2446,15 @@ let (check : (Prims.of_int (48)) (Prims.of_int (268)) (Prims.of_int (117))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - post_hint)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun post_hint1 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 + -> + t1.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2238,15 +2473,13 @@ let (check : (Prims.of_int (48)) (Prims.of_int (268)) (Prims.of_int (117))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - t1.Pulse_Syntax_Base.term1)) - (fun uu___1 + (Obj.magic + uu___5) + (fun uu___6 -> (fun - uu___1 -> - match uu___1 + uu___6 -> + match uu___6 with | Pulse_Syntax_Base.Tm_STApp @@ -2258,6 +2491,10 @@ let (check : Pulse_Syntax_Base.arg = arg;_} -> + let uu___7 + = + Pulse_Checker_Pure.compute_term_type + g head in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2277,13 +2514,12 @@ let (check : (Prims.of_int (268)) (Prims.of_int (117))))) (Obj.magic - (Pulse_Checker_Pure.compute_term_type - g head)) + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> - match uu___2 + uu___8 -> + match uu___8 with | FStar_Pervasives.Mkdtuple4 @@ -2291,56 +2527,101 @@ let (check : eff_head, ty_head, dhead) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___9 + = + debug_log + g + (fun + uu___10 + -> + let uu___11 + = + let uu___12 + = + Pulse_Syntax_Printer.term_to_string + ty_head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (248)) - (Prims.of_int (2)) (Prims.of_int (252)) - (Prims.of_int (43))))) + (Prims.of_int (15)) + (Prims.of_int (252)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (254)) - (Prims.of_int (2)) - (Prims.of_int (268)) - (Prims.of_int (117))))) + (Prims.of_int (249)) + (Prims.of_int (12)) + (Prims.of_int (252)) + (Prims.of_int (42))))) (Obj.magic - (debug_log - g + uu___12) + (fun + uu___13 + -> (fun - uu___3 -> + uu___13 + -> + let uu___14 + = + let uu___15 + = + let uu___16 + = + Pulse_Syntax_Printer.term_to_string + head1 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (249)) - (Prims.of_int (12)) - (Prims.of_int (252)) - (Prims.of_int (42))))) + (Prims.of_int (250)) + (Prims.of_int (15)) + (Prims.of_int (250)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (249)) - (Prims.of_int (4)) - (Prims.of_int (252)) - (Prims.of_int (42))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "st_app: head = " + (Prims.strcat + uu___17 + ", eff_head: ")) + (Prims.strcat + x + ", ty_head = ")) + (Prims.strcat + x1 "\n"))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" + (Prims.of_int (249)) + (Prims.of_int (12)) (Prims.of_int (252)) - (Prims.of_int (15)) - (Prims.of_int (252)) - (Prims.of_int (41))))) + (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2350,12 +2631,17 @@ let (check : (Prims.of_int (252)) (Prims.of_int (42))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty_head)) + uu___15) (fun - uu___4 -> + uu___16 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___17 + -> + uu___16 + (Pulse_Syntax_Printer.tot_or_ghost_to_string + eff_head))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2375,7 +2661,18 @@ let (check : (Prims.of_int (252)) (Prims.of_int (42))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___14) + (fun + uu___15 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> + uu___15 + uu___13)))) + uu___13) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2389,77 +2686,47 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.STApp.fst" (Prims.of_int (249)) - (Prims.of_int (12)) + (Prims.of_int (4)) (Prims.of_int (252)) (Prims.of_int (42))))) (Obj.magic + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + Obj.magic + (FStar_Tactics_V2_Builtins.print + uu___12)) + uu___12)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (250)) - (Prims.of_int (15)) - (Prims.of_int (250)) - (Prims.of_int (38))))) + (Prims.of_int (248)) + (Prims.of_int (2)) + (Prims.of_int (252)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (254)) + (Prims.of_int (2)) + (Prims.of_int (268)) + (Prims.of_int (117))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - head1)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "st_app: head = " - (Prims.strcat - uu___5 - ", eff_head: ")) - (Prims.strcat - x - ", ty_head = ")) - (Prims.strcat - x1 "\n"))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - (Pulse_Syntax_Printer.tot_or_ghost_to_string - eff_head))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) - (fun - uu___4 -> - (fun - uu___4 -> - Obj.magic - (FStar_Tactics_V2_Builtins.print - uu___4)) - uu___4)))) + uu___9) (fun - uu___3 -> + uu___10 + -> (fun - uu___3 -> + uu___10 + -> match Pulse_Syntax_Pure.is_arrow ty_head @@ -2480,7 +2747,18 @@ let (check : eff_head () b) | - uu___4 -> + uu___11 + -> + let uu___12 + = + Pulse_Checker_Base.norm_typing + g head1 + eff_head + ty_head + () + [FStar_Pervasives.weak; + FStar_Pervasives.hnf; + FStar_Pervasives.delta] in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2500,19 +2778,14 @@ let (check : (Prims.of_int (268)) (Prims.of_int (117))))) (Obj.magic - (Pulse_Checker_Base.norm_typing - g head1 - eff_head - ty_head - () - [FStar_Pervasives.weak; - FStar_Pervasives.hnf; - FStar_Pervasives.delta])) + uu___12) (fun - uu___5 -> + uu___13 + -> (fun - uu___5 -> - match uu___5 + uu___13 + -> + match uu___13 with | Prims.Mkdtuple2 @@ -2526,49 +2799,78 @@ let (check : | FStar_Pervasives_Native.None -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___14 + = + let uu___15 + = + Pulse_Syntax_Printer.term_to_string + ty_head in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (264)) - (Prims.of_int (8)) (Prims.of_int (266)) - (Prims.of_int (39))))) + (Prims.of_int (12)) + (Prims.of_int (266)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (263)) - (Prims.of_int (6)) + (Prims.of_int (264)) + (Prims.of_int (8)) (Prims.of_int (266)) (Prims.of_int (39))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___15) + (fun + uu___16 + -> + (fun + uu___16 + -> + let uu___17 + = + let uu___18 + = + Pulse_Syntax_Printer.term_to_string + head1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (266)) + (Prims.of_int (265)) (Prims.of_int (12)) - (Prims.of_int (266)) - (Prims.of_int (38))))) + (Prims.of_int (265)) + (Prims.of_int (35))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.STApp.fst" - (Prims.of_int (264)) + "FStar.Printf.fst" + (Prims.of_int (122)) (Prims.of_int (8)) - (Prims.of_int (266)) - (Prims.of_int (39))))) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty_head)) + uu___18) (fun - uu___6 -> + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___20 + -> + fun x -> + Prims.strcat + (Prims.strcat + "Expected an arrow type; but head " + (Prims.strcat + uu___19 + " has type ")) + (Prims.strcat + x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2588,59 +2890,50 @@ let (check : (Prims.of_int (266)) (Prims.of_int (39))))) (Obj.magic + uu___17) + (fun + uu___18 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + uu___18 + uu___16)))) + uu___16) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.STApp.fst" - (Prims.of_int (265)) - (Prims.of_int (12)) - (Prims.of_int (265)) - (Prims.of_int (35))))) + (Prims.of_int (264)) + (Prims.of_int (8)) + (Prims.of_int (266)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.STApp.fst" + (Prims.of_int (263)) + (Prims.of_int (6)) + (Prims.of_int (266)) + (Prims.of_int (39))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - head1)) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - fun x -> - Prims.strcat - (Prims.strcat - "Expected an arrow type; but head " - (Prims.strcat - uu___7 - " has type ")) - (Prims.strcat - x ""))))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - uu___7 - uu___6)))) - uu___6))) + uu___14) (fun - uu___6 -> + uu___15 + -> (fun - uu___6 -> + uu___15 + -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some (t1.Pulse_Syntax_Base.range1)) - uu___6)) - uu___6)) + uu___15)) + uu___15)) | FStar_Pervasives_Native.Some b -> @@ -2656,9 +2949,9 @@ let (check : ty' eff_head () b))) - uu___5))) - uu___3))) - uu___2))) - uu___1))) - uu___1))) uu___))) - uu___))) uu___) \ No newline at end of file + uu___13))) + uu___10))) + uu___8))) + uu___6))) + uu___5))) uu___3))) + uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_Unreachable.ml b/src/ocaml/plugin/generated/Pulse_Checker_Unreachable.ml index 2f7d4c9b4..4a61a18c8 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_Unreachable.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_Unreachable.ml @@ -15,6 +15,10 @@ let (check : fun post_hint -> fun res_ppname -> fun t -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.range1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -26,9 +30,8 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.Unreachable.fst" (Prims.of_int (38)) (Prims.of_int (2)) (Prims.of_int (50)) (Prims.of_int (62))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.range1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun rng -> match post_hint with | FStar_Pervasives_Native.None -> @@ -38,6 +41,15 @@ let (check : (t.Pulse_Syntax_Base.range1)) "Expected a postcondition to be annotated when unreachable is used") | FStar_Pervasives_Native.Some post -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Syntax_Pure.wr + (FStar_Reflection_V2_Builtins.pack_ln + (FStar_Reflection_V2_Data.Tv_FVar + (FStar_Reflection_V2_Builtins.pack_fv + ["Prims"; "l_False"]))) rng)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -56,15 +68,12 @@ let (check : (Prims.of_int (33)) (Prims.of_int (50)) (Prims.of_int (62))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Pure.wr - (FStar_Reflection_V2_Builtins.pack_ln - (FStar_Reflection_V2_Data.Tv_FVar - (FStar_Reflection_V2_Builtins.pack_fv - ["Prims"; "l_False"]))) rng)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun ff -> + let uu___2 = + Pulse_Checker_Pure.core_check_term_at_type + g ff Pulse_Typing.tm_prop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -83,12 +92,10 @@ let (check : (Prims.of_int (33)) (Prims.of_int (50)) (Prims.of_int (62))))) - (Obj.magic - (Pulse_Checker_Pure.core_check_term_at_type - g ff Pulse_Typing.tm_prop)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | Prims.Mkdtuple2 (eff, ff_typing) -> if @@ -102,7 +109,10 @@ let (check : else Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + Pulse_Checker_Pure.check_prop_validity + g ff () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic ( @@ -122,12 +132,19 @@ let (check : (Prims.of_int (50)) (Prims.of_int (62))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g ff ())) - (fun uu___2 -> + uu___5) + (fun uu___6 -> (fun ff_validity -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + Pulse_Typing_Env.fresh + g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -146,14 +163,16 @@ let (check : (Prims.of_int (27)) (Prims.of_int (50)) (Prims.of_int (62))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Pulse_Typing_Env.fresh - g)) + (Obj.magic + uu___6) (fun - uu___2 -> + uu___7 -> (fun x -> + let uu___7 + = + Pulse_Typing_Combinators.comp_for_post_hint + g pre () + post x in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -173,20 +192,29 @@ let (check : (Prims.of_int (50)) (Prims.of_int (62))))) (Obj.magic - (Pulse_Typing_Combinators.comp_for_post_hint - g pre () - post x)) + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> - match uu___2 + uu___8 -> + match uu___8 with | Prims.Mkdtuple2 (c, c_typing) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Typing.T_Unreachable + (g, c, + c_typing, + ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -205,15 +233,11 @@ let (check : (Prims.of_int (9)) (Prims.of_int (50)) (Prims.of_int (62))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Pulse_Typing.T_Unreachable - (g, c, - c_typing, - ()))) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -227,8 +251,8 @@ let (check : Pulse_Syntax_Base.Tm_Unreachable), c, d)) res_ppname)) - uu___3))) - uu___2))) - uu___2))) - uu___2)))) - uu___))) uu___))) uu___) \ No newline at end of file + uu___10))) + uu___8))) + uu___7))) + uu___6)))) + uu___3))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_While.ml b/src/ocaml/plugin/generated/Pulse_Checker_While.ml index caeabbf28..5938d03c3 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_While.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_While.ml @@ -49,6 +49,12 @@ let (check : fun res_ppname -> fun t -> fun check1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context "while loop" + t.Pulse_Syntax_Base.range1 g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -60,12 +66,13 @@ let (check : (FStar_Range.mk_range "Pulse.Checker.While.fst" (Prims.of_int (51)) (Prims.of_int (48)) (Prims.of_int (130)) (Prims.of_int (70))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "while loop" - t.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -81,11 +88,10 @@ let (check : (Prims.of_int (51)) (Prims.of_int (48)) (Prims.of_int (130)) (Prims.of_int (70))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_While { Pulse_Syntax_Base.invariant = inv; Pulse_Syntax_Base.condition = cond; @@ -93,6 +99,17 @@ let (check : condition_var; Pulse_Syntax_Base.body3 = body;_} -> + let uu___3 = + Pulse_Checker_Pure.check_slprop + (Pulse_Checker_Pure.push_context + "invariant" + (Pulse_Syntax_Pure.term_range + inv) g1) + (Pulse_Syntax_Pure.tm_exists_sl + Pulse_Syntax_Pure.u0 + (Pulse_Syntax_Base.mk_binder_ppname + Pulse_Typing.tm_bool + condition_var) inv) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -111,22 +128,18 @@ let (check : (Prims.of_int (81)) (Prims.of_int (130)) (Prims.of_int (70))))) - (Obj.magic - (Pulse_Checker_Pure.check_slprop - (Pulse_Checker_Pure.push_context - "invariant" - (Pulse_Syntax_Pure.term_range - inv) g1) - (Pulse_Syntax_Pure.tm_exists_sl - Pulse_Syntax_Pure.u0 - (Pulse_Syntax_Base.mk_binder_ppname - Pulse_Typing.tm_bool - condition_var) inv))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | Prims.Mkdtuple2 (ex_inv, inv_typing) -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_Syntax_Pure.inspect_term + ex_inv)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -145,57 +158,25 @@ let (check : (Prims.of_int (2)) (Prims.of_int (130)) (Prims.of_int (70))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Syntax_Pure.inspect_term - ex_inv)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun ex_inv_v -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (59)) - (Prims.of_int (2)) - (Prims.of_int (62)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (62)) - (Prims.of_int (39)) - (Prims.of_int (130)) - (Prims.of_int (70))))) - (if + let uu___6 = + if Prims.op_Negation (Pulse_Syntax_Pure.uu___is_Tm_ExistsSL ex_inv_v) - then + then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (61)) - (Prims.of_int (9)) - (Prims.of_int (62)) - (Prims.of_int (38))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (60)) - (Prims.of_int (7)) - (Prims.of_int (62)) - (Prims.of_int (38))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___7 + = + let uu___8 + = + Pulse_Syntax_Printer.term_to_string + ex_inv in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -213,40 +194,86 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ex_inv)) + uu___8) (fun - uu___2 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> Prims.strcat "check_while: typechecked invariant " (Prims.strcat - uu___2 - " is not an existential"))))) + uu___9 + " is not an existential"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (61)) + (Prims.of_int (9)) + (Prims.of_int (62)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (60)) + (Prims.of_int (7)) + (Prims.of_int (62)) + (Prims.of_int (38))))) + (Obj.magic + uu___7) (fun - uu___2 -> + uu___8 -> (fun - uu___2 -> + uu___8 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___2)) - uu___2))) - else + uu___8)) + uu___8))) + else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - ())))) + uu___8 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (59)) + (Prims.of_int (2)) + (Prims.of_int (62)) + (Prims.of_int (38))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (62)) + (Prims.of_int (39)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (Obj.magic + uu___6) + (fun + uu___7 -> (fun - uu___2 -> + uu___7 -> + let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___9 -> + ex_inv_v)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -265,15 +292,13 @@ let (check : (Prims.of_int (39)) (Prims.of_int (130)) (Prims.of_int (70))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ex_inv_v)) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> - match uu___3 + uu___9 -> + match uu___9 with | Pulse_Syntax_Pure.Tm_ExistsSL @@ -284,27 +309,11 @@ let (check : Pulse_Syntax_Base.binder_ppname = nm; Pulse_Syntax_Base.binder_attrs - = uu___4;_}, + = uu___10;_}, inv1) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (66)) - (Prims.of_int (2)) - (Prims.of_int (70)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (70)) - (Prims.of_int (35)) - (Prims.of_int (130)) - (Prims.of_int (70))))) - (if + let uu___11 + = + if (Prims.op_Negation (Pulse_Syntax_Base.eq_tm ty @@ -317,25 +326,13 @@ let (check : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (69)) - (Prims.of_int (9)) - (Prims.of_int (70)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (68)) - (Prims.of_int (7)) - (Prims.of_int (70)) - (Prims.of_int (34))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___12 + = + let uu___13 + = + Pulse_Syntax_Printer.term_to_string + ty in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -353,83 +350,108 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty)) + uu___13) (fun - uu___5 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___15 + -> Prims.strcat "While loop invariant exists but its witness type is " (Prims.strcat - uu___5 - ", expected bool"))))) + uu___14 + ", expected bool"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (69)) + (Prims.of_int (9)) + (Prims.of_int (70)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (68)) + (Prims.of_int (7)) + (Prims.of_int (70)) + (Prims.of_int (34))))) + (Obj.magic + uu___12) (fun - uu___5 -> + uu___13 + -> (fun - uu___5 -> + uu___13 + -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (nm.Pulse_Syntax_Base.range)) - uu___5)) - uu___5))) + uu___13)) + uu___13))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - ())))) - (fun - uu___5 -> - (fun - uu___5 -> + uu___13 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (72)) - (Prims.of_int (31)) - (Prims.of_int (72)) - (Prims.of_int (76))))) + (Prims.of_int (66)) + (Prims.of_int (2)) + (Prims.of_int (70)) + (Prims.of_int (34))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (72)) - (Prims.of_int (79)) + (Prims.of_int (70)) + (Prims.of_int (35)) (Prims.of_int (130)) (Prims.of_int (70))))) + (Obj.magic + uu___11) + (fun + uu___12 + -> + (fun + uu___12 + -> + let uu___13 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___14 + -> while_cond_comp_typing (Pulse_Checker_Pure.push_context "invariant" (Pulse_Syntax_Pure.term_range inv) g1) u nm ty - inv1 ())) - (fun - uu___6 -> - (fun - while_cond_comp_typing1 - -> + inv1 ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (74)) - (Prims.of_int (16)) - (Prims.of_int (74)) - (Prims.of_int (94))))) + (Prims.of_int (72)) + (Prims.of_int (31)) + (Prims.of_int (72)) + (Prims.of_int (76))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -438,9 +460,21 @@ let (check : (Prims.of_int (79)) (Prims.of_int (130)) (Prims.of_int (70))))) + (Obj.magic + uu___13) + (fun + uu___14 + -> + (fun + while_cond_comp_typing1 + -> + let uu___14 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___15 + -> Pulse_Typing_Metatheory_Base.st_comp_typing_inversion (Pulse_Checker_Pure.push_context "invariant" @@ -457,12 +491,34 @@ let (check : inv) g1) (Pulse_Typing.comp_while_cond nm inv1) - while_cond_comp_typing1)))) + while_cond_comp_typing1)))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (74)) + (Prims.of_int (16)) + (Prims.of_int (74)) + (Prims.of_int (94))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (72)) + (Prims.of_int (79)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun - uu___6 -> - match uu___6 + uu___15 + -> + match uu___15 with | FStar_Pervasives.Mkdtuple4 @@ -471,6 +527,21 @@ let (check : x, post_typing) -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Checker_Base.post_hint_from_comp_typing + (Pulse_Checker_Pure.push_context + "invariant" + (Pulse_Syntax_Pure.term_range + inv) g1) + (Pulse_Typing.comp_while_cond + nm inv1) + while_cond_comp_typing1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -489,42 +560,26 @@ let (check : (Prims.of_int (4)) (Prims.of_int (130)) (Prims.of_int (70))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___16) (fun - uu___7 -> - Pulse_Checker_Base.post_hint_from_comp_typing - (Pulse_Checker_Pure.push_context - "invariant" - (Pulse_Syntax_Pure.term_range - inv) g1) - (Pulse_Typing.comp_while_cond - nm inv1) - while_cond_comp_typing1)) - (fun - uu___7 -> + uu___17 + -> (fun while_cond_hint -> + let uu___17 + = + let uu___18 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (80)) - (Prims.of_int (42)) - (Prims.of_int (89)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (78)) - (Prims.of_int (4)) - (Prims.of_int (130)) - (Prims.of_int (70))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_while_c")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -541,15 +596,28 @@ let (check : (Prims.of_int (49)) (Prims.of_int (89)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Syntax_Base.mk_ppname_no_range - "_while_c")) + (Obj.magic + uu___18) (fun - uu___7 -> + uu___19 + -> (fun ppname -> + let uu___19 + = + check1 + (Pulse_Checker_Pure.push_context + "check_while_condition" + cond.Pulse_Syntax_Base.range1 + g1) + (Pulse_Syntax_Base.comp_pre + (Pulse_Typing.comp_while_cond + nm inv1)) + () + (FStar_Pervasives_Native.Some + while_cond_hint) + ppname + cond in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -569,21 +637,10 @@ let (check : (Prims.of_int (89)) (Prims.of_int (35))))) (Obj.magic - (check1 - (Pulse_Checker_Pure.push_context - "check_while_condition" - cond.Pulse_Syntax_Base.range1 - g1) - (Pulse_Syntax_Base.comp_pre - (Pulse_Typing.comp_while_cond - nm inv1)) - () - (FStar_Pervasives_Native.Some - while_cond_hint) - ppname - cond)) + uu___19) (fun - uu___7 -> + uu___20 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k @@ -596,13 +653,35 @@ let (check : nm inv1)) while_cond_hint r ppname)) - uu___7))) - uu___7))) + uu___20))) + uu___19) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (80)) + (Prims.of_int (42)) + (Prims.of_int (89)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (78)) + (Prims.of_int (4)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (Obj.magic + uu___17) (fun - uu___7 -> + uu___18 + -> (fun - uu___7 -> - match uu___7 + uu___18 + -> + match uu___18 with | FStar_Pervasives.Mkdtuple3 @@ -616,49 +695,30 @@ let (check : (Pulse_Typing.comp_while_cond nm inv1) then + let uu___19 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (93)) - (Prims.of_int (33)) - (Prims.of_int (93)) - (Prims.of_int (78))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (93)) - (Prims.of_int (81)) - (Prims.of_int (123)) - (Prims.of_int (71))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___20 + -> while_body_comp_typing (Pulse_Checker_Pure.push_context "invariant" (Pulse_Syntax_Pure.term_range inv) g1) u nm ty - inv1 ())) - (fun - uu___8 -> - (fun - while_body_comp_typing1 - -> + inv1 ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (95)) - (Prims.of_int (18)) - (Prims.of_int (95)) - (Prims.of_int (96))))) + (Prims.of_int (93)) + (Prims.of_int (33)) + (Prims.of_int (93)) + (Prims.of_int (78))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -667,9 +727,21 @@ let (check : (Prims.of_int (81)) (Prims.of_int (123)) (Prims.of_int (71))))) + (Obj.magic + uu___19) + (fun + uu___20 + -> + (fun + while_body_comp_typing1 + -> + let uu___20 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> + uu___21 + -> Pulse_Typing_Metatheory_Base.st_comp_typing_inversion (Pulse_Checker_Pure.push_context "invariant" @@ -686,41 +758,49 @@ let (check : inv) g1) (Pulse_Typing.comp_while_body nm inv1) - while_body_comp_typing1)))) - (fun - uu___8 -> - (fun - uu___8 -> - match uu___8 - with - | - FStar_Pervasives.Mkdtuple4 - (res_typing1, - body_pre_typing, - x1, - post_typing1) - -> + while_body_comp_typing1)))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (98)) - (Prims.of_int (6)) - (Prims.of_int (98)) - (Prims.of_int (55))))) + (Prims.of_int (95)) + (Prims.of_int (18)) + (Prims.of_int (95)) + (Prims.of_int (96))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (100)) - (Prims.of_int (4)) + (Prims.of_int (93)) + (Prims.of_int (81)) (Prims.of_int (123)) (Prims.of_int (71))))) + (Obj.magic + uu___20) + (fun + uu___21 + -> + (fun + uu___21 + -> + match uu___21 + with + | + FStar_Pervasives.Mkdtuple4 + (res_typing1, + body_pre_typing, + x1, + post_typing1) + -> + let uu___22 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> + uu___23 + -> Pulse_Checker_Base.post_hint_from_comp_typing (Pulse_Checker_Pure.push_context "invariant" @@ -728,35 +808,44 @@ let (check : inv) g1) (Pulse_Typing.comp_while_body nm inv1) - while_body_comp_typing1)) - (fun - uu___9 -> - (fun - while_post_hint - -> + while_body_comp_typing1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (100)) - (Prims.of_int (4)) - (Prims.of_int (103)) - (Prims.of_int (5))))) + (Prims.of_int (98)) + (Prims.of_int (6)) + (Prims.of_int (98)) + (Prims.of_int (55))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (103)) - (Prims.of_int (6)) + (Prims.of_int (100)) + (Prims.of_int (4)) (Prims.of_int (123)) (Prims.of_int (71))))) (Obj.magic - (Pulse_Checker_Base.debug + uu___22) + (fun + uu___23 + -> + (fun + while_post_hint + -> + let uu___23 + = + Pulse_Checker_Base.debug g1 (fun - uu___9 -> + uu___24 + -> + let uu___25 + = + Pulse_Syntax_Printer.term_to_string + while_post_hint.Pulse_Typing.post in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -775,34 +864,29 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - while_post_hint.Pulse_Typing.post)) + uu___25) (fun - uu___10 + uu___26 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___27 -> Prims.strcat "while_body post_hint: " (Prims.strcat - uu___10 - "\n")))))) - (fun - uu___9 -> - (fun - uu___9 -> + uu___26 + "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (104)) - (Prims.of_int (44)) - (Prims.of_int (113)) - (Prims.of_int (37))))) + (Prims.of_int (100)) + (Prims.of_int (4)) + (Prims.of_int (103)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -812,7 +896,25 @@ let (check : (Prims.of_int (123)) (Prims.of_int (71))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + (fun + uu___24 + -> + let uu___25 + = + let uu___26 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___27 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "_while_b")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -829,17 +931,28 @@ let (check : (Prims.of_int (51)) (Prims.of_int (113)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> - Pulse_Syntax_Base.mk_ppname_no_range - "_while_b")) + (Obj.magic + uu___26) (fun - uu___10 + uu___27 -> (fun ppname -> + let uu___27 + = + check1 + (Pulse_Checker_Pure.push_context + "check_while_body" + body.Pulse_Syntax_Base.range1 + g1) + (Pulse_Syntax_Base.comp_pre + (Pulse_Typing.comp_while_body + nm inv1)) + () + (FStar_Pervasives_Native.Some + while_post_hint) + ppname + body in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -859,21 +972,9 @@ let (check : (Prims.of_int (113)) (Prims.of_int (37))))) (Obj.magic - (check1 - (Pulse_Checker_Pure.push_context - "check_while_body" - body.Pulse_Syntax_Base.range1 - g1) - (Pulse_Syntax_Base.comp_pre - (Pulse_Typing.comp_while_body - nm inv1)) - () - (FStar_Pervasives_Native.Some - while_post_hint) - ppname - body)) + uu___27) (fun - uu___10 + uu___28 -> (fun r -> Obj.magic @@ -887,15 +988,35 @@ let (check : nm inv1)) while_post_hint r ppname)) - uu___10))) - uu___10))) + uu___28))) + uu___27) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (104)) + (Prims.of_int (44)) + (Prims.of_int (113)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (103)) + (Prims.of_int (6)) + (Prims.of_int (123)) + (Prims.of_int (71))))) + (Obj.magic + uu___25) (fun - uu___10 + uu___26 -> (fun - uu___10 + uu___26 -> - match uu___10 + match uu___26 with | FStar_Pervasives.Mkdtuple3 @@ -909,27 +1030,12 @@ let (check : (Pulse_Typing.comp_while_body nm inv1) then + let uu___27 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (116)) - (Prims.of_int (14)) - (Prims.of_int (116)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (117)) - (Prims.of_int (6)) - (Prims.of_int (117)) - (Prims.of_int (127))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___28 -> Pulse_Typing.T_While (g1, @@ -938,21 +1044,17 @@ let (check : body1, (), cond_typing, - body_typing))) - (fun - uu___11 - -> - (fun d -> + body_typing))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (117)) - (Prims.of_int (22)) - (Prims.of_int (117)) - (Prims.of_int (109))))) + (Prims.of_int (116)) + (Prims.of_int (14)) + (Prims.of_int (116)) + (Prims.of_int (72))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -962,25 +1064,16 @@ let (check : (Prims.of_int (117)) (Prims.of_int (127))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (117)) - (Prims.of_int (54)) - (Prims.of_int (117)) - (Prims.of_int (97))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (117)) - (Prims.of_int (22)) - (Prims.of_int (117)) - (Prims.of_int (109))))) - (Obj.magic - (Pulse_Checker_Base.match_comp_res_with_post_hint + uu___27) + (fun + uu___28 + -> + (fun d -> + let uu___28 + = + let uu___29 + = + Pulse_Checker_Base.match_comp_res_with_post_hint g1 (Pulse_Typing.wtag (FStar_Pervasives_Native.Some @@ -1000,55 +1093,82 @@ let (check : (Pulse_Typing.comp_while Pulse_Syntax_Base.ppname_default inv1) d - post_hint)) + post_hint in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (117)) + (Prims.of_int (54)) + (Prims.of_int (117)) + (Prims.of_int (97))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (117)) + (Prims.of_int (22)) + (Prims.of_int (117)) + (Prims.of_int (109))))) + (Obj.magic + uu___29) (fun - uu___11 + uu___30 -> (fun - uu___11 + uu___30 -> Obj.magic (Pulse_Checker_Prover.try_frame_pre false g pre () - uu___11 + uu___30 res_ppname)) - uu___11))) - (fun - uu___11 - -> - (fun - uu___11 - -> - Obj.magic - (Pulse_Checker_Prover.prove_post_hint - g pre - uu___11 - post_hint - t.Pulse_Syntax_Base.range1)) - uu___11))) - uu___11)) - else + uu___30) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (119)) - (Prims.of_int (10)) - (Prims.of_int (123)) - (Prims.of_int (71))))) + (Prims.of_int (117)) + (Prims.of_int (22)) + (Prims.of_int (117)) + (Prims.of_int (109))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (118)) - (Prims.of_int (9)) - (Prims.of_int (123)) - (Prims.of_int (71))))) + (Prims.of_int (117)) + (Prims.of_int (6)) + (Prims.of_int (117)) + (Prims.of_int (127))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___28) + (fun + uu___29 + -> + (fun + uu___29 + -> + Obj.magic + (Pulse_Checker_Prover.prove_post_hint + g pre + uu___29 + post_hint + t.Pulse_Syntax_Base.range1)) + uu___29))) + uu___28)) + else + (let uu___28 + = + let uu___29 + = + Pulse_Syntax_Printer.comp_to_string + (Pulse_Typing.comp_while_body + nm inv1) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1066,35 +1186,20 @@ let (check : (Prims.of_int (123)) (Prims.of_int (71))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - (Pulse_Typing.comp_while_body - nm inv1))) + uu___29) (fun - uu___12 + uu___30 -> (fun - uu___12 + uu___30 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (119)) - (Prims.of_int (10)) - (Prims.of_int (123)) - (Prims.of_int (71))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.While.fst" - (Prims.of_int (119)) - (Prims.of_int (10)) - (Prims.of_int (123)) - (Prims.of_int (71))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___31 + = + let uu___32 + = + Pulse_Syntax_Printer.comp_to_string + body_comp in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1112,106 +1217,107 @@ let (check : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - body_comp)) + uu___32) (fun - uu___13 + uu___33 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___34 -> fun x2 -> Prims.strcat (Prims.strcat "Could not prove the inferred type of the while body matches the annotation\nInferred type = " (Prims.strcat - uu___13 + uu___33 "\nAnnotated type = ")) (Prims.strcat - x2 "\n"))))) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - uu___13 - uu___12)))) - uu___12))) - (fun - uu___12 - -> - (fun - uu___12 - -> - Obj.magic - (Pulse_Typing_Env.fail - g1 - FStar_Pervasives_Native.None - uu___12)) - uu___12))) - uu___10))) - uu___9))) - uu___9))) - uu___8))) - uu___8)) - else + x2 "\n"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (126)) - (Prims.of_int (9)) - (Prims.of_int (130)) - (Prims.of_int (70))))) + (Prims.of_int (119)) + (Prims.of_int (10)) + (Prims.of_int (123)) + (Prims.of_int (71))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (125)) - (Prims.of_int (7)) - (Prims.of_int (130)) - (Prims.of_int (70))))) + (Prims.of_int (119)) + (Prims.of_int (10)) + (Prims.of_int (123)) + (Prims.of_int (71))))) (Obj.magic + uu___31) + (fun + uu___32 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___33 + -> + uu___32 + uu___30)))) + uu___30) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (130)) - (Prims.of_int (26)) - (Prims.of_int (130)) - (Prims.of_int (69))))) + (Prims.of_int (119)) + (Prims.of_int (10)) + (Prims.of_int (123)) + (Prims.of_int (71))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (126)) + (Prims.of_int (118)) (Prims.of_int (9)) - (Prims.of_int (130)) - (Prims.of_int (70))))) + (Prims.of_int (123)) + (Prims.of_int (71))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - (Pulse_Typing.comp_while_cond - nm inv1))) + uu___28) (fun - uu___9 -> + uu___29 + -> (fun - uu___9 -> + uu___29 + -> Obj.magic - (FStar_Tactics_Effect.tac_bind + (Pulse_Typing_Env.fail + g1 + FStar_Pervasives_Native.None + uu___29)) + uu___29)))) + uu___26))) + uu___24))) + uu___23))) + uu___21))) + uu___20)) + else + (let uu___20 + = + let uu___21 + = + Pulse_Syntax_Printer.comp_to_string + (Pulse_Typing.comp_while_cond + nm inv1) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.While.fst" - (Prims.of_int (126)) - (Prims.of_int (9)) (Prims.of_int (130)) - (Prims.of_int (70))))) + (Prims.of_int (26)) + (Prims.of_int (130)) + (Prims.of_int (69))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1221,7 +1327,20 @@ let (check : (Prims.of_int (130)) (Prims.of_int (70))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + let uu___23 + = + let uu___24 + = + Pulse_Syntax_Printer.comp_to_string + cond_comp in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1239,50 +1358,91 @@ let (check : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (Pulse_Syntax_Printer.comp_to_string - cond_comp)) + uu___24) (fun - uu___10 + uu___25 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___26 -> fun x1 -> Prims.strcat (Prims.strcat "Could not prove that the inferred type of the while condition matches the annotation\nInferred type = " (Prims.strcat - uu___10 + uu___25 "\nAnnotated type = ")) (Prims.strcat - x1 "\n"))))) + x1 "\n"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (126)) + (Prims.of_int (9)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (126)) + (Prims.of_int (9)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (Obj.magic + uu___23) (fun - uu___10 + uu___24 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___25 -> - uu___10 - uu___9)))) - uu___9))) + uu___24 + uu___22)))) + uu___22) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (126)) + (Prims.of_int (9)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.While.fst" + (Prims.of_int (125)) + (Prims.of_int (7)) + (Prims.of_int (130)) + (Prims.of_int (70))))) + (Obj.magic + uu___20) (fun - uu___9 -> + uu___21 + -> (fun - uu___9 -> + uu___21 + -> Obj.magic (Pulse_Typing_Env.fail g1 FStar_Pervasives_Native.None - uu___9)) + uu___21)) + uu___21)))) + uu___18))) + uu___17))) + uu___15))) + uu___14))) + uu___12))) uu___9))) uu___7))) - uu___7))) - uu___6))) - uu___6))) - uu___5))) - uu___3))) - uu___2))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___6))) + uu___4))) uu___2))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_WithInv.ml b/src/ocaml/plugin/generated/Pulse_Checker_WithInv.ml index ee9358735..0c10a89e4 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_WithInv.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_WithInv.ml @@ -13,6 +13,9 @@ let (rt_recheck : fun e -> fun ty -> fun uu___ -> + let uu___1 = + FStar_Tactics_V2_Builtins.core_check_term g e ty + FStar_TypeChecker_Core.E_Total in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -24,17 +27,15 @@ let (rt_recheck : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (35)) (Prims.of_int (2)) (Prims.of_int (37)) (Prims.of_int (58))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.core_check_term g e ty - FStar_TypeChecker_Core.E_Total)) - (fun uu___1 -> - match uu___1 with - | (FStar_Pervasives_Native.Some tok, uu___2) -> + (Obj.magic uu___1) + (fun uu___2 -> + match uu___2 with + | (FStar_Pervasives_Native.Some tok, uu___3) -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___4 -> FStar_Reflection_Typing.T_Token (g, e, (FStar_TypeChecker_Core.E_Total, ty), ())) - | (FStar_Pervasives_Native.None, uu___2) -> + | (FStar_Pervasives_Native.None, uu___3) -> FStar_Tactics_V2_Derived.fail "Checker.WithInv: rt_recheck failed") let (recheck : @@ -91,6 +92,9 @@ let (add_remove_inverse : fun i -> fun inames_typing -> fun i_typing -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -102,9 +106,13 @@ let (add_remove_inverse : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (108)) (Prims.of_int (2)) (Prims.of_int (119)) (Prims.of_int (19))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun typing -> + let uu___1 = + Pulse_Checker_Pure.try_check_prop_validity g + (Pulse_Typing.tm_inames_subset + (add_iname (remove_iname inames i) i) inames) () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -119,210 +127,206 @@ let (add_remove_inverse : "Pulse.Checker.WithInv.fst" (Prims.of_int (108)) (Prims.of_int (2)) (Prims.of_int (119)) (Prims.of_int (19))))) - (Obj.magic - (Pulse_Checker_Pure.try_check_prop_validity g - (Pulse_Typing.tm_inames_subset - (add_iname (remove_iname inames i) i) - inames) ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (110)) - (Prims.of_int (20)) - (Prims.of_int (117)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (110)) - (Prims.of_int (4)) - (Prims.of_int (117)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + Pulse_PP.pp + Pulse_PP.printable_term + (add_iname + (remove_iname inames + i) i) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (113)) + (Prims.of_int (8)) + (Prims.of_int (115)) + (Prims.of_int (15))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (112)) + (Prims.of_int (6)) + (Prims.of_int (115)) + (Prims.of_int (15))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Inferred the following invariants were opened: ") + uu___8)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (110)) - (Prims.of_int (20)) - (Prims.of_int (117)) - (Prims.of_int (5))))) + (Prims.of_int (112)) + (Prims.of_int (6)) + (Prims.of_int (115)) + (Prims.of_int (15))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (110)) - (Prims.of_int (20)) - (Prims.of_int (117)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (112)) - (Prims.of_int (6)) - (Prims.of_int (116)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (110)) - (Prims.of_int (20)) - (Prims.of_int (117)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (112)) - (Prims.of_int (6)) - (Prims.of_int (115)) - (Prims.of_int (15))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Prims.of_int (112)) + (Prims.of_int (6)) + (Prims.of_int (116)) + (Prims.of_int (65))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + Pulse_PP.pp + Pulse_PP.printable_term + inames in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (112)) - (Prims.of_int (6)) + (Prims.of_int (116)) + (Prims.of_int (54)) (Prims.of_int (116)) (Prims.of_int (65))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (113)) - (Prims.of_int (8)) - (Prims.of_int (115)) - (Prims.of_int (15))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (112)) + (Prims.of_int (116)) (Prims.of_int (6)) - (Prims.of_int (115)) - (Prims.of_int (15))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - (add_iname - (remove_iname - inames i) - i))) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_Pprint.prefix + (Prims.of_int (116)) + (Prims.of_int (65))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 + -> + FStar_Pprint.prefix (Prims.of_int (4)) Prims.int_one (Pulse_PP.text - "Inferred the following invariants were opened: ") - uu___1)))) - (fun uu___1 -> - (fun uu___1 - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + "But expected to only open: ") + uu___10)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (116)) (Prims.of_int (6)) (Prims.of_int (116)) (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (112)) (Prims.of_int (6)) (Prims.of_int (116)) (Prims.of_int (65))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (116)) - (Prims.of_int (54)) - (Prims.of_int (116)) - (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (116)) - (Prims.of_int (6)) - (Prims.of_int (116)) - (Prims.of_int (65))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - inames)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "But expected to only open: ") - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 + -> FStar_Pprint.op_Hat_Slash_Hat - uu___1 - uu___2)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - [uu___1])))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - (Pulse_PP.text - "Failed to prove that only the following invariants are opened") - :: uu___1)))) - (fun uu___1 -> - (fun uu___1 -> + uu___7 + uu___9)))) + uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (112)) + (Prims.of_int (6)) + (Prims.of_int (116)) + (Prims.of_int (65))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (110)) + (Prims.of_int (20)) + (Prims.of_int (117)) + (Prims.of_int (5))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> [uu___6])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (110)) + (Prims.of_int (20)) + (Prims.of_int (117)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (110)) + (Prims.of_int (20)) + (Prims.of_int (117)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + (Pulse_PP.text + "Failed to prove that only the following invariants are opened") + :: uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (110)) + (Prims.of_int (20)) + (Prims.of_int (117)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (110)) + (Prims.of_int (4)) + (Prims.of_int (117)) + (Prims.of_int (5))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> Obj.magic (Pulse_Typing_Env.fail_doc g FStar_Pervasives_Native.None - uu___1)) uu___1))) + uu___4)) uu___4))) | FStar_Pervasives_Native.Some tok -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ())))) uu___))) - uu___) + (fun uu___3 -> ())))) uu___2))) + uu___1) let rec (find_inv : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -356,7 +360,8 @@ let rec (find_inv : | Pulse_Syntax_Pure.Tm_Star (l, r) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = find_inv g l () i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -373,19 +378,19 @@ let rec (find_inv : (Prims.of_int (4)) (Prims.of_int (151)) (Prims.of_int (17))))) - (Obj.magic (find_inv g l () i)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives_Native.Some res -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> match res with | FStar_Pervasives.Mkdtuple5 - (p, frame, uu___2, - uu___3, uu___4) + (p, frame, uu___3, + uu___4, uu___5) -> FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple5 @@ -396,7 +401,8 @@ let rec (find_inv : | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = find_inv g r () i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -413,20 +419,19 @@ let rec (find_inv : (Prims.of_int (6)) (Prims.of_int (151)) (Prims.of_int (17))))) - (Obj.magic - (find_inv g r () i)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - match uu___1 with + (fun uu___4 -> + match uu___3 with | FStar_Pervasives_Native.Some res -> (match res with | FStar_Pervasives.Mkdtuple5 (p, frame, - uu___3, - uu___4, - uu___5) + uu___5, + uu___6, + uu___7) -> FStar_Pervasives_Native.Some ( @@ -436,9 +441,9 @@ let rec (find_inv : l frame), (), (), ()))) - | uu___3 -> + | uu___5 -> FStar_Pervasives_Native.None))))) - uu___))) + uu___1))) | uu___ -> Obj.magic (Obj.repr @@ -467,6 +472,12 @@ let (find_inv_post : fun ret_ty_typing -> fun post_typing -> fun i -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Syntax_Naming.open_term_nv post + (Pulse_Syntax_Base.ppname_default, x))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -478,12 +489,14 @@ let (find_inv_post : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (172)) (Prims.of_int (60)) (Prims.of_int (183)) (Prims.of_int (114))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Naming.open_term_nv post - (Pulse_Syntax_Base.ppname_default, x))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun post_opened -> + let uu___1 = + Pulse_Checker_Prover.normalize_slprop_welltyped + (Pulse_Typing_Env.push_binding g x + Pulse_Syntax_Base.ppname_default ret_ty) + post_opened () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -502,18 +515,20 @@ let (find_inv_post : (Prims.of_int (60)) (Prims.of_int (183)) (Prims.of_int (114))))) - (Obj.magic - (Pulse_Checker_Prover.normalize_slprop_welltyped - (Pulse_Typing_Env.push_binding g x - Pulse_Syntax_Base.ppname_default - ret_ty) post_opened ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | FStar_Pervasives.Mkdtuple3 (post_opened1, post_equiv, post_typing1) -> + let uu___3 = + find_inv + (Pulse_Typing_Env.push_binding g + x + Pulse_Syntax_Base.ppname_default + ret_ty) post_opened1 () i in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -532,14 +547,8 @@ let (find_inv_post : (Prims.of_int (2)) (Prims.of_int (183)) (Prims.of_int (114))))) - (Obj.magic - (find_inv - (Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - ret_ty) post_opened1 - () i)) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun res -> match res with | FStar_Pervasives_Native.None @@ -547,7 +556,7 @@ let (find_inv_post : Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 + (fun uu___4 -> FStar_Pervasives_Native.None))) | FStar_Pervasives_Native.Some @@ -558,7 +567,13 @@ let (find_inv_post : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___5 -> + ())) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -575,15 +590,20 @@ let (find_inv_post : (Prims.of_int (55)) (Prims.of_int (183)) (Prims.of_int (114))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - ())) - (fun uu___1 + (Obj.magic + uu___4) + (fun uu___5 -> (fun frame_typing1 -> + let uu___5 + = + recheck g + (Pulse_Syntax_Pure.tm_inv + i p) + Pulse_Syntax_Pure.tm_slprop + () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -603,18 +623,13 @@ let (find_inv_post : (Prims.of_int (183)) (Prims.of_int (114))))) (Obj.magic - (recheck - g - (Pulse_Syntax_Pure.tm_inv - i p) - Pulse_Syntax_Pure.tm_slprop - ())) + uu___5) (fun tm_inv_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___6 -> FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple5 (p, @@ -622,8 +637,8 @@ let (find_inv_post : frame x), (), (), ())))))) - uu___1)))) - uu___1))) uu___))) uu___) + uu___5)))) + uu___4))) uu___2))) uu___1) let (atomic_or_ghost_with_inames_and_pre_post : Pulse_Syntax_Base.comp -> Pulse_Syntax_Base.term -> @@ -697,7 +712,10 @@ let rec (__withinv_post : with | Pulse_Syntax_Pure.Tm_Star (l, r) -> Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + __withinv_post g p i l () () + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -714,19 +732,17 @@ let rec (__withinv_post : (Prims.of_int (11)) (Prims.of_int (226)) (Prims.of_int (16))))) - (Obj.magic - (__withinv_post g p i l () - () ())) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> (fun res -> match res with | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 - (l', uu___1)) -> + (l', uu___2)) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 + (fun uu___3 -> FStar_Pervasives_Native.Some (Prims.Mkdtuple2 @@ -737,7 +753,11 @@ let rec (__withinv_post : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + __withinv_post + g p i r + () () () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -755,21 +775,19 @@ let rec (__withinv_post : (Prims.of_int (225)) (Prims.of_int (29))))) (Obj.magic - (__withinv_post - g p i r - () () ())) + uu___2) (fun res1 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___1 -> + uu___3 -> match res1 with | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 (r', - uu___2)) + uu___4)) -> FStar_Pervasives_Native.Some (Prims.Mkdtuple2 @@ -780,7 +798,7 @@ let rec (__withinv_post : FStar_Pervasives_Native.None -> FStar_Pervasives_Native.None))))) - uu___1)) + uu___2)) | uu___1 -> Obj.repr (FStar_Tactics_Effect.lift_div_tac @@ -806,6 +824,8 @@ let (withinv_post : fun p_typing -> fun i_typing -> fun post_typing -> + let uu___ = + Pulse_Checker_Prover.normalize_slprop_welltyped g p () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -817,13 +837,15 @@ let (withinv_post : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (236)) (Prims.of_int (51)) (Prims.of_int (239)) (Prims.of_int (61))))) - (Obj.magic - (Pulse_Checker_Prover.normalize_slprop_welltyped g p ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | FStar_Pervasives.Mkdtuple3 (p1, uu___1, p_typing1) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | FStar_Pervasives.Mkdtuple3 (p1, uu___2, p_typing1) -> + let uu___3 = + Pulse_Checker_Prover.normalize_slprop_welltyped + g post () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -842,17 +864,15 @@ let (withinv_post : (Prims.of_int (78)) (Prims.of_int (239)) (Prims.of_int (61))))) - (Obj.magic - (Pulse_Checker_Prover.normalize_slprop_welltyped - g post ())) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple3 - (post1, uu___3, post_typing1) -> + (post1, uu___5, post_typing1) -> Obj.magic (__withinv_post g p1 i post1 () - () ())) uu___2))) uu___) + () ())) uu___4))) uu___1) let (check0 : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -871,6 +891,10 @@ let (check0 : fun res_ppname -> fun t -> fun check -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> t.Pulse_Syntax_Base.term1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -882,16 +906,18 @@ let (check0 : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (252)) Prims.int_one (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.Tm_WithInv { Pulse_Syntax_Base.name1 = i; Pulse_Syntax_Base.body6 = body; Pulse_Syntax_Base.returns_inv = returns_inv;_} -> + let uu___2 = + Pulse_Checker_Pure.check_tot_term g i + Pulse_Syntax_Pure.tm_iname in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -910,13 +936,17 @@ let (check0 : (Prims.of_int (56)) (Prims.of_int (481)) (Prims.of_int (57))))) - (Obj.magic - (Pulse_Checker_Pure.check_tot_term g i - Pulse_Syntax_Pure.tm_iname)) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with - | Prims.Mkdtuple2 (i1, uu___2) -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with + | Prims.Mkdtuple2 (i1, uu___4) -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Pulse_RuntimeUtils.range_of_term + i1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -935,12 +965,11 @@ let (check0 : (Prims.of_int (53)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Pulse_RuntimeUtils.range_of_term - i1)) - (fun uu___3 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun i_range -> + let uu___6 = + find_inv g pre () i1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -959,72 +988,60 @@ let (check0 : (Prims.of_int (2)) (Prims.of_int (481)) (Prims.of_int (57))))) - (Obj.magic - (find_inv g pre - () i1)) - (fun uu___3 -> + (Obj.magic uu___6) + (fun uu___7 -> (fun res -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (256)) - (Prims.of_int (2)) - (Prims.of_int (260)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (260)) - (Prims.of_int (8)) - (Prims.of_int (481)) - (Prims.of_int (57))))) - (if + let uu___7 = + if FStar_Pervasives_Native.uu___is_None res - then + then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (257)) - (Prims.of_int (30)) - (Prims.of_int (260)) - (Prims.of_int (7))))) + (let uu___8 + = + let uu___9 + = + let uu___10 + = + let uu___11 + = + Pulse_PP.pp + Pulse_PP.printable_term + i1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (257)) - (Prims.of_int (4)) - (Prims.of_int (260)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (258)) + (Prims.of_int (70)) + (Prims.of_int (258)) + (Prims.of_int (76))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (258)) (Prims.of_int (8)) - (Prims.of_int (259)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (257)) - (Prims.of_int (30)) - (Prims.of_int (260)) - (Prims.of_int (7))))) + (Prims.of_int (258)) + (Prims.of_int (76))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Cannot find invariant resource for iname ") + uu___12)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1042,42 +1059,52 @@ let (check0 : (Prims.of_int (259)) (Prims.of_int (58))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + (fun + uu___11 + -> + let uu___12 + = + let uu___13 + = + Pulse_PP.pp + Pulse_PP.printable_term + pre in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (258)) - (Prims.of_int (70)) - (Prims.of_int (258)) - (Prims.of_int (76))))) + (Prims.of_int (259)) + (Prims.of_int (50)) + (Prims.of_int (259)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (258)) + (Prims.of_int (259)) (Prims.of_int (8)) - (Prims.of_int (258)) - (Prims.of_int (76))))) + (Prims.of_int (259)) + (Prims.of_int (58))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - i1)) + uu___13) (fun - uu___3 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___15 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "Cannot find invariant resource for iname ") - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> + " in the precondition ") + uu___14)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1097,75 +1124,113 @@ let (check0 : (Prims.of_int (259)) (Prims.of_int (58))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (259)) - (Prims.of_int (50)) - (Prims.of_int (259)) - (Prims.of_int (58))))) + uu___12) + (fun + uu___13 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___11 + uu___13)))) + uu___11) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (259)) + (Prims.of_int (258)) (Prims.of_int (8)) (Prims.of_int (259)) (Prims.of_int (58))))) + (FStar_Sealed.seal (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - pre)) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - " in the precondition ") - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___3 - uu___4)))) - uu___3))) + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (257)) + (Prims.of_int (30)) + (Prims.of_int (260)) + (Prims.of_int (7))))) + (Obj.magic + uu___9) (fun - uu___3 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - [uu___3])))) + uu___11 + -> + [uu___10])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (257)) + (Prims.of_int (30)) + (Prims.of_int (260)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (257)) + (Prims.of_int (4)) + (Prims.of_int (260)) + (Prims.of_int (7))))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some i_range) - uu___3)) - uu___3))) - else + uu___9)) + uu___9))) + else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - ())))) + uu___9 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (256)) + (Prims.of_int (2)) + (Prims.of_int (260)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (260)) + (Prims.of_int (8)) + (Prims.of_int (481)) + (Prims.of_int (57))))) + (Obj.magic + uu___7) + (fun + uu___8 -> (fun - uu___3 -> + uu___8 -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1184,44 +1249,28 @@ let (check0 : (Prims.of_int (8)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - res)) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun - uu___4 -> - match uu___4 + uu___10 + -> + match uu___10 with | FStar_Pervasives_Native.Some (FStar_Pervasives.Mkdtuple5 (p, pre_frame, - uu___5, + uu___11, pre_frame_typing, d_pre_frame_eq)) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (268)) - (Prims.of_int (4)) - (Prims.of_int (313)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (314)) - (Prims.of_int (4)) - (Prims.of_int (481)) - (Prims.of_int (57))))) - (match + let uu___12 + = + match (returns_inv, post_hint) with @@ -1233,8 +1282,8 @@ let (check0 : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - post))) + uu___13 + -> post))) | (FStar_Pervasives_Native.Some (b, post, @@ -1243,7 +1292,19 @@ let (check0 : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___13 + = + Pulse_Checker_Base.intro_post_hint + g + (Pulse_Syntax_Base.EffectAnnotAtomicOrGhost + { + Pulse_Syntax_Base.opens2 + = opens + }) + (FStar_Pervasives_Native.Some + (b.Pulse_Syntax_Base.binder_ty)) + post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1261,21 +1322,25 @@ let (check0 : (Prims.of_int (305)) (Prims.of_int (100))))) (Obj.magic - (Pulse_Checker_Base.intro_post_hint - g - (Pulse_Syntax_Base.EffectAnnotAtomicOrGhost - { - Pulse_Syntax_Base.opens2 - = opens - }) - (FStar_Pervasives_Native.Some - (b.Pulse_Syntax_Base.binder_ty)) - post)) + uu___13) (fun - uu___6 -> + uu___14 + -> (fun post_hint1 -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Typing_Env.push_binding + g + post_hint1.Pulse_Typing.x + Pulse_Syntax_Base.ppname_default + post_hint1.Pulse_Typing.ret_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1294,18 +1359,22 @@ let (check0 : (Prims.of_int (79)) (Prims.of_int (305)) (Prims.of_int (100))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing_Env.push_binding - g - post_hint1.Pulse_Typing.x - Pulse_Syntax_Base.ppname_default - post_hint1.Pulse_Typing.ret_ty)) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun g_x -> + let uu___15 + = + withinv_post + g_x p i1 + (Pulse_Syntax_Naming.open_term_nv + post_hint1.Pulse_Typing.post + (Pulse_Syntax_Base.v_as_nv + post_hint1.Pulse_Typing.x)) + () () () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1325,15 +1394,10 @@ let (check0 : (Prims.of_int (305)) (Prims.of_int (100))))) (Obj.magic - (withinv_post - g_x p i1 - (Pulse_Syntax_Naming.open_term_nv - post_hint1.Pulse_Typing.post - (Pulse_Syntax_Base.v_as_nv - post_hint1.Pulse_Typing.x)) - () () ())) + uu___15) (fun - uu___6 -> + uu___16 + -> (fun res1 -> match res1 @@ -1343,43 +1407,50 @@ let (check0 : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (293)) - (Prims.of_int (66)) - (Prims.of_int (297)) - (Prims.of_int (11))))) + (let uu___16 + = + let uu___17 + = + let uu___18 + = + let uu___19 + = + Pulse_PP.pp + Pulse_PP.printable_term + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (293)) - (Prims.of_int (10)) - (Prims.of_int (297)) - (Prims.of_int (11))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (295)) + (Prims.of_int (14)) + (Prims.of_int (295)) + (Prims.of_int (20))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (294)) (Prims.of_int (12)) - (Prims.of_int (296)) - (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (293)) - (Prims.of_int (66)) - (Prims.of_int (297)) - (Prims.of_int (11))))) + (Prims.of_int (295)) + (Prims.of_int (20))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Cannot find invariant slprop") + uu___20)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1397,65 +1468,78 @@ let (check0 : (Prims.of_int (296)) (Prims.of_int (66))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___18) + (fun + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___19 + (Pulse_PP.text + "in the with_invariants annotated postcondition."))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (295)) - (Prims.of_int (14)) - (Prims.of_int (295)) - (Prims.of_int (20))))) + (Prims.of_int (294)) + (Prims.of_int (12)) + (Prims.of_int (296)) + (Prims.of_int (66))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (294)) - (Prims.of_int (12)) - (Prims.of_int (295)) - (Prims.of_int (20))))) + (Prims.of_int (293)) + (Prims.of_int (66)) + (Prims.of_int (297)) + (Prims.of_int (11))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - p)) + uu___17) (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Cannot find invariant slprop") - uu___6)))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___6 - (Pulse_PP.text - "in the with_invariants annotated postcondition."))))) - (fun - uu___6 -> + uu___18 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - [uu___6])))) + uu___19 + -> + [uu___18])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (293)) + (Prims.of_int (66)) + (Prims.of_int (297)) + (Prims.of_int (11))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (293)) + (Prims.of_int (10)) + (Prims.of_int (297)) + (Prims.of_int (11))))) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun - uu___6 -> + uu___17 + -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (FStar_Reflection_V1_Builtins.range_of_term post)) - uu___6)) - uu___6))) + uu___17)) + uu___17))) | FStar_Pervasives_Native.Some (Prims.Mkdtuple2 @@ -1466,7 +1550,8 @@ let (check0 : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___16 + -> { Pulse_Typing.g = @@ -1498,44 +1583,69 @@ let (check0 : Pulse_Typing.post_typing = () })))) - uu___6))) - uu___6))) - uu___6))) + uu___16))) + uu___15))) + uu___14))) | (FStar_Pervasives_Native.Some - (uu___6, + (uu___13, post, - uu___7), + uu___14), FStar_Pervasives_Native.Some q) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___15 + = + let uu___16 + = + let uu___17 + = + let uu___18 + = + Pulse_PP.pp + Pulse_PP.printable_term + post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (309)) - (Prims.of_int (8)) - (Prims.of_int (311)) + (Prims.of_int (310)) + (Prims.of_int (51)) + (Prims.of_int (310)) (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (311)) + (Prims.of_int (310)) + (Prims.of_int (10)) + (Prims.of_int (310)) (Prims.of_int (60))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___18) + (fun + uu___19 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "First postcondition:") + uu___19)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (309)) - (Prims.of_int (8)) - (Prims.of_int (311)) + (Prims.of_int (310)) + (Prims.of_int (10)) + (Prims.of_int (310)) (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic @@ -1546,60 +1656,81 @@ let (check0 : (Prims.of_int (311)) (Prims.of_int (60))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___17) + (fun + uu___18 + -> + (fun + uu___18 + -> + let uu___19 + = + let uu___20 + = + let uu___21 + = + Pulse_PP.pp + Pulse_PP.printable_post_hint_t + q in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (310)) - (Prims.of_int (10)) - (Prims.of_int (310)) - (Prims.of_int (60))))) + (Prims.of_int (311)) + (Prims.of_int (52)) + (Prims.of_int (311)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (309)) - (Prims.of_int (8)) (Prims.of_int (311)) - (Prims.of_int (60))))) + (Prims.of_int (10)) + (Prims.of_int (311)) + (Prims.of_int (58))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21) + (fun + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___23 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "Second postcondition:") + uu___22)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (310)) - (Prims.of_int (51)) - (Prims.of_int (310)) - (Prims.of_int (60))))) + (Prims.of_int (311)) + (Prims.of_int (10)) + (Prims.of_int (311)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (310)) - (Prims.of_int (10)) - (Prims.of_int (310)) + (Prims.of_int (309)) + (Prims.of_int (8)) + (Prims.of_int (311)) (Prims.of_int (60))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - post)) + uu___20) (fun - uu___8 -> + uu___21 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "First postcondition:") - uu___8)))) - (fun - uu___8 -> - (fun - uu___8 -> + uu___22 + -> + [uu___21])) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1619,15 +1750,27 @@ let (check0 : (Prims.of_int (311)) (Prims.of_int (60))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + uu___18 + :: + uu___20)))) + uu___18) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" + (Prims.of_int (309)) + (Prims.of_int (8)) (Prims.of_int (311)) - (Prims.of_int (10)) - (Prims.of_int (311)) - (Prims.of_int (58))))) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1637,76 +1780,53 @@ let (check0 : (Prims.of_int (311)) (Prims.of_int (60))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___16) + (fun + uu___17 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + (FStar_Pprint.doc_of_string + "Fatal: multiple annotated postconditions on with_invariant") + :: + uu___17)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" + (Prims.of_int (309)) + (Prims.of_int (8)) (Prims.of_int (311)) - (Prims.of_int (52)) - (Prims.of_int (311)) - (Prims.of_int (58))))) + (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) (Prims.of_int (311)) - (Prims.of_int (10)) - (Prims.of_int (311)) - (Prims.of_int (58))))) + (Prims.of_int (60))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_post_hint_t - q)) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac + uu___15) (fun - uu___10 + uu___16 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "Second postcondition:") - uu___9)))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___16 -> - [uu___9])))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> uu___8 - :: uu___9)))) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - (FStar_Pprint.doc_of_string - "Fatal: multiple annotated postconditions on with_invariant") - :: uu___8)))) - (fun - uu___8 -> - (fun - uu___8 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - uu___8)) - uu___8))) + uu___16)) + uu___16))) | - (uu___6, - uu___7) + (uu___13, + uu___14) -> Obj.magic (Obj.repr @@ -1714,12 +1834,41 @@ let (check0 : g (FStar_Pervasives_Native.Some (t.Pulse_Syntax_Base.range1)) - "Fatal: no post hint on with_invariant"))) + "Fatal: no post hint on with_invariant")) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (268)) + (Prims.of_int (4)) + (Prims.of_int (313)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (314)) + (Prims.of_int (4)) + (Prims.of_int (481)) + (Prims.of_int (57))))) + (Obj.magic + uu___12) (fun - uu___6 -> + uu___13 + -> (fun post_hint1 -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + body.Pulse_Syntax_Base.range1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1738,15 +1887,24 @@ let (check0 : (Prims.of_int (32)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - body.Pulse_Syntax_Base.range1)) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> (fun body_range -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Syntax_Pure.tm_star + p + pre_frame)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1765,17 +1923,21 @@ let (check0 : (Prims.of_int (48)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Pure.tm_star - p - pre_frame)) + (Obj.magic + uu___14) (fun - uu___6 -> + uu___15 + -> (fun pre_body -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1794,15 +1956,23 @@ let (check0 : (Prims.of_int (69)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - ())) + (Obj.magic + uu___15) (fun - uu___6 -> + uu___16 + -> (fun pre_body_typing -> + let uu___16 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___17 + -> + Pulse_Typing_Env.fresh + g)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1821,14 +1991,23 @@ let (check0 : (Prims.of_int (51)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing_Env.fresh - g)) + (Obj.magic + uu___16) (fun - uu___6 -> + uu___17 + -> (fun x -> + let uu___17 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> + Pulse_Typing_Env.push_binding + g x + Pulse_Syntax_Base.ppname_default + post_hint1.Pulse_Typing.ret_ty)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1847,17 +2026,20 @@ let (check0 : (Prims.of_int (64)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing_Env.push_binding - g x - Pulse_Syntax_Base.ppname_default - post_hint1.Pulse_Typing.ret_ty)) + (Obj.magic + uu___17) (fun - uu___6 -> + uu___18 + -> (fun g' -> + let uu___18 + = + recheck g + post_hint1.Pulse_Typing.ret_ty + (Pulse_Syntax_Pure.tm_type + post_hint1.Pulse_Typing.u) + () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1877,17 +2059,23 @@ let (check0 : (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (recheck - g - post_hint1.Pulse_Typing.ret_ty - (Pulse_Syntax_Pure.tm_type - post_hint1.Pulse_Typing.u) - ())) + uu___18) (fun - uu___6 -> + uu___19 + -> (fun post_hint_ret_ty_typing -> + let uu___19 + = + recheck + g' + (Pulse_Syntax_Naming.open_term_nv + post_hint1.Pulse_Typing.post + (Pulse_Syntax_Base.ppname_default, + x)) + Pulse_Syntax_Pure.tm_slprop + () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1907,19 +2095,21 @@ let (check0 : (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (recheck - g' - (Pulse_Syntax_Naming.open_term_nv - post_hint1.Pulse_Typing.post - (Pulse_Syntax_Base.ppname_default, - x)) - Pulse_Syntax_Pure.tm_slprop - ())) + uu___19) (fun - uu___6 -> + uu___20 + -> (fun post_hint_post_typing -> + let uu___20 + = + find_inv_post + g x + post_hint1.Pulse_Typing.u + post_hint1.Pulse_Typing.ret_ty + post_hint1.Pulse_Typing.post + () () i1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1939,77 +2129,64 @@ let (check0 : (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (find_inv_post - g x - post_hint1.Pulse_Typing.u - post_hint1.Pulse_Typing.ret_ty - post_hint1.Pulse_Typing.post - () () i1)) + uu___20) (fun - uu___6 -> + uu___21 + -> (fun res1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (349)) - (Prims.of_int (2)) - (Prims.of_int (353)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (353)) - (Prims.of_int (8)) - (Prims.of_int (481)) - (Prims.of_int (57))))) - (if + let uu___21 + = + if FStar_Pervasives_Native.uu___is_None res1 then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (350)) - (Prims.of_int (30)) - (Prims.of_int (353)) - (Prims.of_int (7))))) + (let uu___22 + = + let uu___23 + = + let uu___24 + = + let uu___25 + = + Pulse_PP.pp + Pulse_PP.printable_term + i1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (350)) - (Prims.of_int (4)) - (Prims.of_int (353)) - (Prims.of_int (7))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (351)) + (Prims.of_int (70)) + (Prims.of_int (351)) + (Prims.of_int (76))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (351)) (Prims.of_int (8)) - (Prims.of_int (352)) - (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (350)) - (Prims.of_int (30)) - (Prims.of_int (353)) - (Prims.of_int (7))))) + (Prims.of_int (351)) + (Prims.of_int (76))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___27 + -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text + "Cannot find invariant resource for iname ") + uu___26)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2027,42 +2204,52 @@ let (check0 : (Prims.of_int (352)) (Prims.of_int (70))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24) + (fun + uu___25 + -> + (fun + uu___25 + -> + let uu___26 + = + let uu___27 + = + Pulse_PP.pp + Pulse_PP.printable_term + post_hint1.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (351)) - (Prims.of_int (70)) - (Prims.of_int (351)) - (Prims.of_int (76))))) + (Prims.of_int (352)) + (Prims.of_int (51)) + (Prims.of_int (352)) + (Prims.of_int (70))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (351)) + (Prims.of_int (352)) (Prims.of_int (8)) - (Prims.of_int (351)) - (Prims.of_int (76))))) + (Prims.of_int (352)) + (Prims.of_int (70))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - i1)) + uu___27) (fun - uu___6 -> + uu___28 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___29 + -> FStar_Pprint.prefix (Prims.of_int (2)) Prims.int_one (Pulse_PP.text - "Cannot find invariant resource for iname ") - uu___6)))) - (fun - uu___6 -> - (fun - uu___6 -> + " in the postcondition ") + uu___28)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2082,85 +2269,94 @@ let (check0 : (Prims.of_int (352)) (Prims.of_int (70))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + FStar_Pprint.op_Hat_Slash_Hat + uu___25 + uu___27)))) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (352)) - (Prims.of_int (51)) + (Prims.of_int (351)) + (Prims.of_int (8)) (Prims.of_int (352)) (Prims.of_int (70))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (352)) - (Prims.of_int (8)) - (Prims.of_int (352)) - (Prims.of_int (70))))) + (Prims.of_int (350)) + (Prims.of_int (30)) + (Prims.of_int (353)) + (Prims.of_int (7))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - post_hint1.Pulse_Typing.post)) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - " in the postcondition ") - uu___7)))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac + uu___23) (fun - uu___8 -> - FStar_Pprint.op_Hat_Slash_Hat - uu___6 - uu___7)))) - uu___6))) - (fun - uu___6 -> + uu___24 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - [uu___6])))) + uu___25 + -> + [uu___24])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (350)) + (Prims.of_int (30)) + (Prims.of_int (353)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (350)) + (Prims.of_int (4)) + (Prims.of_int (353)) + (Prims.of_int (7))))) + (Obj.magic + uu___22) (fun - uu___6 -> + uu___23 + -> (fun - uu___6 -> + uu___23 + -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some i_range) - uu___6)) - uu___6))) + uu___23)) + uu___23))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - ())))) - (fun - uu___6 -> - (fun - uu___6 -> + uu___23 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (356)) - (Prims.of_int (76)) - (Prims.of_int (356)) - (Prims.of_int (79))))) + (Prims.of_int (349)) + (Prims.of_int (2)) + (Prims.of_int (353)) + (Prims.of_int (7))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2169,77 +2365,115 @@ let (check0 : (Prims.of_int (8)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - res1)) + (Obj.magic + uu___21) (fun - uu___7 -> + uu___22 + -> (fun - uu___7 -> - match uu___7 - with - | - FStar_Pervasives_Native.Some - (FStar_Pervasives.Mkdtuple5 - (p', - post_frame, - uu___8, - post_frame_typing, - d_post_frame_equiv)) + uu___22 -> + let uu___23 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> res1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (357)) - (Prims.of_int (2)) - (Prims.of_int (360)) - (Prims.of_int (40))))) + (Prims.of_int (356)) + (Prims.of_int (76)) + (Prims.of_int (356)) + (Prims.of_int (79))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (361)) - (Prims.of_int (19)) + (Prims.of_int (353)) + (Prims.of_int (8)) (Prims.of_int (481)) (Prims.of_int (57))))) - (if + (Obj.magic + uu___23) + (fun + uu___24 + -> + (fun + uu___24 + -> + match uu___24 + with + | + FStar_Pervasives_Native.Some + (FStar_Pervasives.Mkdtuple5 + (p', + post_frame, + uu___25, + post_frame_typing, + d_post_frame_equiv)) + -> + let uu___26 + = + if Prims.op_Negation (Pulse_Syntax_Base.eq_tm p p') then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___27 + = + let uu___28 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + p' in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (359)) - (Prims.of_int (9)) (Prims.of_int (360)) - (Prims.of_int (40))))) + (Prims.of_int (30)) + (Prims.of_int (360)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (358)) - (Prims.of_int (7)) + (Prims.of_int (359)) + (Prims.of_int (9)) (Prims.of_int (360)) (Prims.of_int (40))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___28) + (fun + uu___29 + -> + (fun + uu___29 + -> + let uu___30 + = + let uu___31 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (360)) - (Prims.of_int (30)) + (Prims.of_int (21)) (Prims.of_int (360)) - (Prims.of_int (39))))) + (Prims.of_int (29))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2249,41 +2483,70 @@ let (check0 : (Prims.of_int (360)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - p')) + uu___31) (fun - uu___9 -> + uu___32 + -> (fun - uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___32 + -> + let uu___33 + = + let uu___34 + = + Pulse_Show.show + Pulse_Show.tac_showable_r_term + i1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (359)) - (Prims.of_int (9)) (Prims.of_int (360)) - (Prims.of_int (40))))) + (Prims.of_int (12)) + (Prims.of_int (360)) + (Prims.of_int (20))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (359)) - (Prims.of_int (9)) - (Prims.of_int (360)) - (Prims.of_int (40))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic + uu___34) + (fun + uu___35 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___36 + -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "Inconsistent slprops for iname " + (Prims.strcat + uu___35 + " in pre (")) + (Prims.strcat + x1 + ") and post (")) + (Prims.strcat + x2 ")"))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" + (Prims.of_int (359)) + (Prims.of_int (9)) (Prims.of_int (360)) - (Prims.of_int (21)) - (Prims.of_int (360)) - (Prims.of_int (29))))) + (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2293,15 +2556,17 @@ let (check0 : (Prims.of_int (360)) (Prims.of_int (40))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - p)) + uu___33) (fun - uu___10 + uu___34 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___35 -> + uu___34 + uu___32)))) + uu___32) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2321,131 +2586,102 @@ let (check0 : (Prims.of_int (360)) (Prims.of_int (40))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___30) + (fun + uu___31 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___32 + -> + uu___31 + uu___29)))) + uu___29) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" + (Prims.of_int (359)) + (Prims.of_int (9)) (Prims.of_int (360)) - (Prims.of_int (12)) - (Prims.of_int (360)) - (Prims.of_int (20))))) + (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.WithInv.fst" + (Prims.of_int (358)) + (Prims.of_int (7)) + (Prims.of_int (360)) + (Prims.of_int (40))))) (Obj.magic - (Pulse_Show.show - Pulse_Show.tac_showable_r_term - i1)) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "Inconsistent slprops for iname " - (Prims.strcat - uu___11 - " in pre (")) - (Prims.strcat - x1 - ") and post (")) - (Prims.strcat - x2 ")"))))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - uu___11 - uu___10)))) - uu___10))) + uu___27) (fun - uu___10 + uu___28 -> - FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___28 -> - uu___10 - uu___9)))) - uu___9))) - (fun - uu___9 -> - (fun - uu___9 -> Obj.magic (Pulse_Typing_Env.fail g (FStar_Pervasives_Native.Some i_range) - uu___9)) - uu___9))) + uu___28)) + uu___28))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___10 - -> ())))) - (fun - uu___9 -> - (fun - uu___9 -> + uu___28 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (362)) - (Prims.of_int (18)) - (Prims.of_int (362)) - (Prims.of_int (38))))) + (Prims.of_int (357)) + (Prims.of_int (2)) + (Prims.of_int (360)) + (Prims.of_int (40))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (362)) - (Prims.of_int (41)) + (Prims.of_int (361)) + (Prims.of_int (19)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___26) (fun - uu___10 + uu___27 -> - Pulse_Syntax_Pure.tm_star - p - post_frame)) (fun - uu___10 + uu___27 -> + let uu___28 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - post_body + uu___29 -> + Pulse_Syntax_Pure.tm_star + p + post_frame)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (372)) - (Prims.of_int (73))))) + (Prims.of_int (362)) + (Prims.of_int (18)) + (Prims.of_int (362)) + (Prims.of_int (38))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2454,9 +2690,20 @@ let (check0 : (Prims.of_int (41)) (Prims.of_int (481)) (Prims.of_int (57))))) + (Obj.magic + uu___28) + (fun + uu___29 + -> + (fun + post_body + -> + let uu___29 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___30 -> match post_hint1.Pulse_Typing.effect_annot @@ -2493,20 +2740,48 @@ let (check0 : -> Prims.Mkdtuple2 (opens, - ()))) + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (372)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (362)) + (Prims.of_int (41)) + (Prims.of_int (481)) + (Prims.of_int (57))))) + (Obj.magic + uu___29) (fun - uu___10 + uu___30 -> (fun - uu___10 + uu___30 -> - match uu___10 + match uu___30 with | Prims.Mkdtuple2 (opens, opens_typing) -> + let uu___31 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___32 + -> + uu___30)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2525,68 +2800,55 @@ let (check0 : (Prims.of_int (4)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - uu___10)) + (Obj.magic + uu___31) (fun - uu___11 + uu___32 -> (fun - uu___11 + uu___32 -> + let uu___33 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (374)) - (Prims.of_int (23)) - (Prims.of_int (374)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (374)) - (Prims.of_int (46)) - (Prims.of_int (481)) - (Prims.of_int (57))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___34 -> remove_iname - opens i1)) - (fun - uu___12 - -> - (fun - opens_remove_i - -> + opens i1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (376)) - (Prims.of_int (4)) - (Prims.of_int (383)) - (Prims.of_int (55))))) + (Prims.of_int (374)) + (Prims.of_int (23)) + (Prims.of_int (374)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (383)) - (Prims.of_int (58)) + (Prims.of_int (374)) + (Prims.of_int (46)) (Prims.of_int (481)) (Prims.of_int (57))))) + (Obj.magic + uu___33) + (fun + uu___34 + -> + (fun + opens_remove_i + -> + let uu___34 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___35 -> match post_hint1.Pulse_Typing.effect_annot @@ -2602,7 +2864,7 @@ let (check0 : } | Pulse_Syntax_Base.EffectAnnotAtomic - uu___13 + uu___36 -> Pulse_Syntax_Base.EffectAnnotAtomic { @@ -2612,7 +2874,7 @@ let (check0 : } | Pulse_Syntax_Base.EffectAnnotGhost - uu___13 + uu___36 -> Pulse_Syntax_Base.EffectAnnotGhost { @@ -2622,75 +2884,85 @@ let (check0 : } | Pulse_Syntax_Base.EffectAnnotAtomicOrGhost - uu___13 + uu___36 -> Pulse_Syntax_Base.EffectAnnotAtomicOrGhost { Pulse_Syntax_Base.opens2 = opens_remove_i - })) - (fun - uu___12 - -> - (fun - effect_annot - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (386)) - (Prims.of_int (6)) - (Prims.of_int (386)) - (Prims.of_int (61))))) + (Prims.of_int (376)) + (Prims.of_int (4)) + (Prims.of_int (383)) + (Prims.of_int (55))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (389)) - (Prims.of_int (46)) + (Prims.of_int (383)) + (Prims.of_int (58)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___34) (fun - uu___12 + uu___35 -> (fun - uu___12 + effect_annot -> + let uu___35 + = Obj.magic - ()) - uu___12)) + (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___36 -> (fun - effect_annot_typing + uu___36 -> Obj.magic + ()) + uu___36)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (390)) - (Prims.of_int (48)) - (Prims.of_int (398)) - (Prims.of_int (25))))) + (Prims.of_int (386)) + (Prims.of_int (6)) + (Prims.of_int (386)) + (Prims.of_int (61))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (399)) - (Prims.of_int (6)) + (Prims.of_int (389)) + (Prims.of_int (46)) (Prims.of_int (481)) (Prims.of_int (57))))) + (Obj.magic + uu___35) + (fun + uu___36 + -> + (fun + effect_annot_typing + -> + let uu___36 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___37 -> { Pulse_Typing.g @@ -2718,23 +2990,17 @@ let (check0 : = (); Pulse_Typing.post_typing = () - })) - (fun - uu___12 - -> - (fun - post_hint_body - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (401)) - (Prims.of_int (39)) - (Prims.of_int (404)) - (Prims.of_int (35))))) + (Prims.of_int (390)) + (Prims.of_int (48)) + (Prims.of_int (398)) + (Prims.of_int (25))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2744,7 +3010,25 @@ let (check0 : (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___36) + (fun + uu___37 + -> + (fun + post_hint_body + -> + let uu___37 + = + let uu___38 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___39 + -> + Pulse_Syntax_Base.mk_ppname_no_range + "with_inv_body")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2761,17 +3045,22 @@ let (check0 : (Prims.of_int (54)) (Prims.of_int (404)) (Prims.of_int (35))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Pulse_Syntax_Base.mk_ppname_no_range - "with_inv_body")) + (Obj.magic + uu___38) (fun - uu___12 + uu___39 -> (fun ppname -> + let uu___39 + = + check g + pre_body + () + (FStar_Pervasives_Native.Some + post_hint_body) + ppname + body in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2791,15 +3080,9 @@ let (check0 : (Prims.of_int (404)) (Prims.of_int (35))))) (Obj.magic - (check g - pre_body - () - (FStar_Pervasives_Native.Some - post_hint_body) - ppname - body)) + uu___39) (fun - uu___12 + uu___40 -> (fun r -> Obj.magic @@ -2808,15 +3091,35 @@ let (check0 : pre_body post_hint_body r ppname)) - uu___12))) - uu___12))) + uu___40))) + uu___39) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (401)) + (Prims.of_int (39)) + (Prims.of_int (404)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (399)) + (Prims.of_int (6)) + (Prims.of_int (481)) + (Prims.of_int (57))))) + (Obj.magic + uu___37) (fun - uu___12 + uu___38 -> (fun - uu___12 + uu___38 -> - match uu___12 + match uu___38 with | FStar_Pervasives.Mkdtuple3 @@ -2824,6 +3127,20 @@ let (check0 : c_body, body_typing) -> + let uu___39 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___40 + -> + atomic_or_ghost_with_inames_and_pre_post + c_body + (Pulse_Syntax_Pure.tm_add_inv + (Pulse_Syntax_Base.comp_inames + c_body) + i1) pre + post_hint1.Pulse_Typing.post)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2842,22 +3159,18 @@ let (check0 : (Prims.of_int (21)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - atomic_or_ghost_with_inames_and_pre_post - c_body - (Pulse_Syntax_Pure.tm_add_inv - (Pulse_Syntax_Base.comp_inames - c_body) - i1) pre - post_hint1.Pulse_Typing.post)) + (Obj.magic + uu___39) (fun - uu___13 + uu___40 -> (fun c_out -> + let uu___40 + = + disjointness_remove_i_i + g opens + i1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2877,35 +3190,18 @@ let (check0 : (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (disjointness_remove_i_i - g opens - i1)) + uu___40) (fun - uu___13 + uu___41 -> (fun tok -> + let uu___41 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (418)) - (Prims.of_int (11)) - (Prims.of_int (418)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (418)) - (Prims.of_int (93)) - (Prims.of_int (481)) - (Prims.of_int (57))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___42 -> Pulse_Typing.wtag (FStar_Pervasives_Native.Some @@ -2920,33 +3216,38 @@ let (check0 : Pulse_Syntax_Base.returns_inv = FStar_Pervasives_Native.None - }))) - (fun - uu___13 - -> - (fun tm - -> + }))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (419)) - (Prims.of_int (32)) - (Prims.of_int (458)) - (Prims.of_int (5))))) + (Prims.of_int (418)) + (Prims.of_int (11)) + (Prims.of_int (418)) + (Prims.of_int (90))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (460)) - (Prims.of_int (2)) + (Prims.of_int (418)) + (Prims.of_int (93)) (Prims.of_int (481)) (Prims.of_int (57))))) + (Obj.magic + uu___41) + (fun + uu___42 + -> + (fun tm + -> + let uu___42 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___43 -> Pulse_Typing.T_Equiv (g, @@ -3034,55 +3335,53 @@ let (check0 : i1 p) post_frame))), FStar_Reflection_Typing.R_Eq)), - (), ()))))) - (fun - uu___13 - -> - (fun d -> - match - post_hint1.Pulse_Typing.effect_annot - with - | - Pulse_Syntax_Base.EffectAnnotGhost - uu___13 - -> + (), ()))))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (465)) - (Prims.of_int (6)) - (Prims.of_int (465)) - (Prims.of_int (58))))) + (Prims.of_int (419)) + (Prims.of_int (32)) + (Prims.of_int (458)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (466)) - (Prims.of_int (6)) - (Prims.of_int (477)) + (Prims.of_int (460)) + (Prims.of_int (2)) + (Prims.of_int (481)) (Prims.of_int (57))))) (Obj.magic - (add_remove_inverse - g opens - i1 () ())) + uu___42) (fun - uu___14 + uu___43 -> - (fun tok1 + (fun d -> + match + post_hint1.Pulse_Typing.effect_annot + with + | + Pulse_Syntax_Base.EffectAnnotGhost + uu___43 -> + let uu___44 + = + add_remove_inverse + g opens + i1 () () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" - (Prims.of_int (468)) + (Prims.of_int (465)) (Prims.of_int (6)) - (Prims.of_int (474)) - (Prims.of_int (49))))) + (Prims.of_int (465)) + (Prims.of_int (58))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3091,9 +3390,19 @@ let (check0 : (Prims.of_int (6)) (Prims.of_int (477)) (Prims.of_int (57))))) + (Obj.magic + uu___44) + (fun + uu___45 + -> + (fun tok1 + -> + let uu___45 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___46 -> match c_out with @@ -3124,20 +3433,48 @@ let (check0 : (g, st, add_inv, opens, - ()))))) + ()))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (468)) + (Prims.of_int (6)) + (Prims.of_int (474)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (466)) + (Prims.of_int (6)) + (Prims.of_int (477)) + (Prims.of_int (57))))) + (Obj.magic + uu___45) (fun - uu___14 + uu___46 -> (fun - uu___14 + uu___46 -> - match uu___14 + match uu___46 with | Prims.Mkdtuple2 (c_out_opens, d_sub_c) -> + let uu___47 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___48 + -> + uu___46)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3156,17 +3493,27 @@ let (check0 : (Prims.of_int (52)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___47) (fun - uu___15 + uu___48 -> - uu___14)) (fun - uu___15 + uu___48 -> + let uu___49 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___15 + uu___50 -> + Pulse_Typing.T_Sub + (g, tm, + c_out, + c_out_opens, + d, + d_sub_c))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3185,18 +3532,10 @@ let (check0 : (Prims.of_int (4)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___16 - -> - Pulse_Typing.T_Sub - (g, tm, - c_out, - c_out_opens, - d, - d_sub_c))) + (Obj.magic + uu___49) (fun - uu___16 + uu___50 -> (fun d1 -> @@ -3209,14 +3548,19 @@ let (check0 : c_out_opens, d1)) res_ppname)) - uu___16))) - uu___15))) - uu___14))) - uu___14)) + uu___50))) + uu___48))) + uu___46))) + uu___45)) | Pulse_Syntax_Base.EffectAnnotAtomic - uu___13 + uu___43 -> + let uu___44 + = + add_remove_inverse + g opens + i1 () () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3236,35 +3580,18 @@ let (check0 : (Prims.of_int (477)) (Prims.of_int (57))))) (Obj.magic - (add_remove_inverse - g opens - i1 () ())) + uu___44) (fun - uu___14 + uu___45 -> (fun tok1 -> + let uu___45 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (468)) - (Prims.of_int (6)) - (Prims.of_int (474)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (466)) - (Prims.of_int (6)) - (Prims.of_int (477)) - (Prims.of_int (57))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___46 -> match c_out with @@ -3295,20 +3622,48 @@ let (check0 : (g, st, add_inv, opens, - ()))))) + ()))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (468)) + (Prims.of_int (6)) + (Prims.of_int (474)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (466)) + (Prims.of_int (6)) + (Prims.of_int (477)) + (Prims.of_int (57))))) + (Obj.magic + uu___45) (fun - uu___14 + uu___46 -> (fun - uu___14 + uu___46 -> - match uu___14 + match uu___46 with | Prims.Mkdtuple2 (c_out_opens, d_sub_c) -> + let uu___47 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___48 + -> + uu___46)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3327,17 +3682,27 @@ let (check0 : (Prims.of_int (52)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___47) (fun - uu___15 + uu___48 -> - uu___14)) (fun - uu___15 + uu___48 -> + let uu___49 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___15 + uu___50 -> + Pulse_Typing.T_Sub + (g, tm, + c_out, + c_out_opens, + d, + d_sub_c))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3356,18 +3721,10 @@ let (check0 : (Prims.of_int (4)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___16 - -> - Pulse_Typing.T_Sub - (g, tm, - c_out, - c_out_opens, - d, - d_sub_c))) + (Obj.magic + uu___49) (fun - uu___16 + uu___50 -> (fun d1 -> @@ -3380,14 +3737,19 @@ let (check0 : c_out_opens, d1)) res_ppname)) - uu___16))) - uu___15))) - uu___14))) - uu___14)) + uu___50))) + uu___48))) + uu___46))) + uu___45)) | Pulse_Syntax_Base.EffectAnnotAtomicOrGhost - uu___13 + uu___43 -> + let uu___44 + = + add_remove_inverse + g opens + i1 () () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3407,35 +3769,18 @@ let (check0 : (Prims.of_int (477)) (Prims.of_int (57))))) (Obj.magic - (add_remove_inverse - g opens - i1 () ())) + uu___44) (fun - uu___14 + uu___45 -> (fun tok1 -> + let uu___45 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (468)) - (Prims.of_int (6)) - (Prims.of_int (474)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithInv.fst" - (Prims.of_int (466)) - (Prims.of_int (6)) - (Prims.of_int (477)) - (Prims.of_int (57))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___14 + uu___46 -> match c_out with @@ -3466,20 +3811,48 @@ let (check0 : (g, st, add_inv, opens, - ()))))) + ()))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (468)) + (Prims.of_int (6)) + (Prims.of_int (474)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithInv.fst" + (Prims.of_int (466)) + (Prims.of_int (6)) + (Prims.of_int (477)) + (Prims.of_int (57))))) + (Obj.magic + uu___45) (fun - uu___14 + uu___46 -> (fun - uu___14 + uu___46 -> - match uu___14 + match uu___46 with | Prims.Mkdtuple2 (c_out_opens, d_sub_c) -> + let uu___47 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___48 + -> + uu___46)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3498,17 +3871,27 @@ let (check0 : (Prims.of_int (52)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___47) (fun - uu___15 + uu___48 -> - uu___14)) (fun - uu___15 + uu___48 -> + let uu___49 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac (fun - uu___15 + uu___50 -> + Pulse_Typing.T_Sub + (g, tm, + c_out, + c_out_opens, + d, + d_sub_c))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3527,18 +3910,10 @@ let (check0 : (Prims.of_int (4)) (Prims.of_int (477)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___16 - -> - Pulse_Typing.T_Sub - (g, tm, - c_out, - c_out_opens, - d, - d_sub_c))) + (Obj.magic + uu___49) (fun - uu___16 + uu___50 -> (fun d1 -> @@ -3551,13 +3926,30 @@ let (check0 : c_out_opens, d1)) res_ppname)) - uu___16))) - uu___15))) - uu___14))) - uu___14)) + uu___50))) + uu___48))) + uu___46))) + uu___45)) | Pulse_Syntax_Base.EffectAnnotSTT -> + let uu___43 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___44 + -> + Pulse_Typing.T_Lift + (g, tm, + c_out, + (Pulse_Syntax_Base.C_ST + (Pulse_Syntax_Base.st_comp_of_comp + c_out)), + d, + (Pulse_Typing.Lift_STAtomic_ST + (g, + c_out))))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3576,22 +3968,10 @@ let (check0 : (Prims.of_int (4)) (Prims.of_int (481)) (Prims.of_int (57))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Pulse_Typing.T_Lift - (g, tm, - c_out, - (Pulse_Syntax_Base.C_ST - (Pulse_Syntax_Base.st_comp_of_comp - c_out)), - d, - (Pulse_Typing.Lift_STAtomic_ST - (g, - c_out))))) + (Obj.magic + uu___43) (fun - uu___13 + uu___44 -> (fun d1 -> @@ -3606,36 +3986,36 @@ let (check0 : c_out)), d1)) res_ppname)) + uu___44))) + uu___43))) + uu___42))) + uu___41))) + uu___40))) + uu___38))) + uu___37))) + uu___36))) + uu___35))) + uu___34))) + uu___32))) + uu___30))) + uu___29))) + uu___27))) + uu___24))) + uu___22))) + uu___21))) + uu___20))) + uu___19))) + uu___18))) + uu___17))) + uu___16))) + uu___15))) + uu___14))) uu___13))) - uu___13))) - uu___13))) - uu___13))) - uu___13))) - uu___12))) - uu___12))) - uu___12))) - uu___12))) - uu___12))) - uu___11))) - uu___10))) uu___10))) - uu___9))) - uu___7))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___4))) - uu___3))) - uu___3))) - uu___3))) uu___1))) - uu___) + uu___8))) + uu___7))) + uu___6))) uu___3))) + uu___1) let (norm_and_check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -3654,6 +4034,8 @@ let (norm_and_check : fun res_ppname -> fun t -> fun check -> + let uu___ = + Pulse_Checker_Prover.normalize_slprop_welltyped g pre () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3665,14 +4047,14 @@ let (norm_and_check : (FStar_Range.mk_range "Pulse.Checker.WithInv.fst" (Prims.of_int (494)) Prims.int_one (Prims.of_int (496)) (Prims.of_int (64))))) - (Obj.magic - (Pulse_Checker_Prover.normalize_slprop_welltyped g pre - ())) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | FStar_Pervasives.Mkdtuple3 (pre', pre_equiv, pre'_typing) -> + let uu___2 = + check0 g pre' () post_hint res_ppname t check in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3691,15 +4073,13 @@ let (norm_and_check : (Prims.of_int (2)) (Prims.of_int (496)) (Prims.of_int (64))))) - (Obj.magic - (check0 g pre' () post_hint res_ppname t - check)) + (Obj.magic uu___2) (fun r -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___3 -> Pulse_Checker_Base.checker_result_t_equiv_ctxt g pre' pre post_hint () r)))) - uu___) + uu___1) let (check : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> diff --git a/src/ocaml/plugin/generated/Pulse_Checker_WithLocal.ml b/src/ocaml/plugin/generated/Pulse_Checker_WithLocal.ml index b00943474..0e035ce7f 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_WithLocal.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_WithLocal.ml @@ -11,6 +11,15 @@ let (extend_post_hint_for_local : fun p -> fun init_t -> fun x -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Syntax_Pure.tm_exists_sl Pulse_Syntax_Pure.u0 + (Pulse_Syntax_Base.as_binder init_t) + (Pulse_Typing.mk_pts_to init_t + (Pulse_Syntax_Pure.null_var x) + (Pulse_Syntax_Pure.null_bvar Prims.int_zero)))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -22,15 +31,16 @@ let (extend_post_hint_for_local : (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" (Prims.of_int (36)) (Prims.of_int (102)) (Prims.of_int (40)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Pure.tm_exists_sl Pulse_Syntax_Pure.u0 - (Pulse_Syntax_Base.as_binder init_t) - (Pulse_Typing.mk_pts_to init_t - (Pulse_Syntax_Pure.null_var x) - (Pulse_Syntax_Pure.null_bvar Prims.int_zero)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun conjunct -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Typing_Env.push_binding g x + Pulse_Syntax_Base.ppname_default + (Pulse_Typing.mk_ref init_t))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -45,13 +55,13 @@ let (extend_post_hint_for_local : "Pulse.Checker.WithLocal.fst" (Prims.of_int (37)) (Prims.of_int (63)) (Prims.of_int (40)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_binding g x - Pulse_Syntax_Base.ppname_default - (Pulse_Typing.mk_ref init_t))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun g' -> + let uu___2 = + Pulse_Checker_Pure.core_check_term g' conjunct + FStar_TypeChecker_Core.E_Total + Pulse_Syntax_Pure.tm_slprop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -70,13 +80,14 @@ let (extend_post_hint_for_local : (Prims.of_int (88)) (Prims.of_int (40)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Checker_Pure.core_check_term g' - conjunct - FStar_TypeChecker_Core.E_Total - Pulse_Syntax_Pure.tm_slprop)) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun c_typing -> + let uu___3 = + Pulse_Checker_Base.extend_post_hint + g p x + (Pulse_Typing.mk_ref init_t) + conjunct () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -95,15 +106,11 @@ let (extend_post_hint_for_local : (Prims.of_int (8)) (Prims.of_int (39)) (Prims.of_int (11))))) - (Obj.magic - (Pulse_Checker_Base.extend_post_hint - g p x - (Pulse_Typing.mk_ref - init_t) conjunct ())) + (Obj.magic uu___3) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> res)))) uu___))) - uu___))) uu___) + (fun uu___4 -> res)))) + uu___3))) uu___2))) uu___1) let (head_range : Pulse_Syntax_Base.st_term -> Pulse_Syntax_Base.range) = fun t -> @@ -180,6 +187,13 @@ let (check : (FStar_Pervasives_Native.Some (head_range t)) "Allocating a mutable local variable is only allowed in non-ghost and non-atomic code" | FStar_Pervasives_Native.Some post -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context + "check_withlocal" t.Pulse_Syntax_Base.range1 + g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -193,12 +207,13 @@ let (check : "Pulse.Checker.WithLocal.fst" (Prims.of_int (75)) (Prims.of_int (55)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context "check_withlocal" - t.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -217,11 +232,10 @@ let (check : (Prims.of_int (55)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_WithLocal { Pulse_Syntax_Base.binder2 = @@ -230,88 +244,82 @@ let (check : init; Pulse_Syntax_Base.body4 = body;_} -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (77)) - (Prims.of_int (64)) - (Prims.of_int (88)) - (Prims.of_int (85))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (76)) - (Prims.of_int (65)) - (Prims.of_int (136)) - (Prims.of_int (63))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (79)) - (Prims.of_int (15)) - (Prims.of_int (79)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (80)) - (Prims.of_int (6)) - (Prims.of_int (88)) - (Prims.of_int (85))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - binder.Pulse_Syntax_Base.binder_ty)) - (fun uu___1 -> - (fun ty -> - match Pulse_Syntax_Pure.inspect_term - ty - with - | Pulse_Syntax_Pure.Tm_Unknown - -> - Obj.magic - (Pulse_Checker_Pure.compute_tot_term_type_and_u - g1 init) - | uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + let uu___3 = + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + binder.Pulse_Syntax_Base.binder_ty)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (79)) + (Prims.of_int (15)) + (Prims.of_int (79)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (80)) + (Prims.of_int (6)) + (Prims.of_int (88)) + (Prims.of_int (85))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun ty -> + match Pulse_Syntax_Pure.inspect_term + ty + with + | Pulse_Syntax_Pure.Tm_Unknown + -> + Obj.magic + (Pulse_Checker_Pure.compute_tot_term_type_and_u + g1 init) + | uu___5 -> + let uu___6 = + Pulse_Checker_Pure.check_universe + g1 ty in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" (Prims.of_int (83)) (Prims.of_int (33)) (Prims.of_int (83)) (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" (Prims.of_int (82)) (Prims.of_int (12)) (Prims.of_int (88)) (Prims.of_int (85))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - g1 ty)) - (fun - uu___2 -> - (fun - uu___2 -> - match uu___2 + (Obj.magic + uu___6) + (fun uu___7 -> + (fun uu___7 + -> + match uu___7 with | Prims.Mkdtuple2 (u, ty_typing) -> + let uu___8 + = + Pulse_Checker_Pure.check_term + g1 init + FStar_TypeChecker_Core.E_Total + ty in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -331,16 +339,14 @@ let (check : (Prims.of_int (88)) (Prims.of_int (85))))) (Obj.magic - (Pulse_Checker_Pure.check_term - g1 init - FStar_TypeChecker_Core.E_Total - ty)) + uu___8) (fun - uu___3 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - match uu___3 + uu___10 + -> + match uu___9 with | Prims.Mkdtuple2 @@ -351,11 +357,30 @@ let (check : (init1, u, ty, (), ()))))) - uu___2))) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + uu___7))) + uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (77)) + (Prims.of_int (64)) + (Prims.of_int (88)) + (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (76)) + (Prims.of_int (65)) + (Prims.of_int (136)) + (Prims.of_int (63))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple5 (init1, init_u, init_t, @@ -368,48 +393,13 @@ let (check : init_u Pulse_Syntax_Pure.u0) then - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (94)) - (Prims.of_int (10)) - (Prims.of_int (96)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (92)) - (Prims.of_int (9)) - (Prims.of_int (97)) - (Prims.of_int (5))))) - (Obj.magic - ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (94)) - (Prims.of_int (10)) - (Prims.of_int (96)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (94)) - (Prims.of_int (10)) - (Prims.of_int (96)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___5 = + let uu___6 = + let uu___7 = + Pulse_Syntax_Printer.term_to_string + init1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" @@ -417,7 +407,7 @@ let (check : (Prims.of_int (14)) (Prims.of_int (95)) (Prims.of_int (37))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "FStar.Printf.fst" @@ -425,73 +415,123 @@ let (check : (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - init1)) - (fun - uu___2 -> + (Obj.magic + uu___7) + (fun uu___8 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___9 -> fun x -> Prims.strcat (Prims.strcat "check_withlocal: allocating a local variable: type " (Prims.strcat - uu___2 + uu___8 " is not universe zero (computed ")) (Prims.strcat - x ")"))))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac + x ")"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (94)) + (Prims.of_int (10)) + (Prims.of_int (96)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (94)) + (Prims.of_int (10)) + (Prims.of_int (96)) + (Prims.of_int (40))))) + (Obj.magic + uu___6) + (fun uu___7 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - uu___2 + uu___8 -> + uu___7 (Pulse_Syntax_Printer.univ_to_string - init_u))))) - (fun uu___2 + init_u))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (94)) + (Prims.of_int (10)) + (Prims.of_int (96)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + ( + Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (92)) + (Prims.of_int (9)) + (Prims.of_int (97)) + (Prims.of_int (5))))) + (Obj.magic + uu___5) + (fun uu___6 -> (fun - uu___2 -> + uu___6 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (head_range t)) - uu___2)) - uu___2)) + uu___6)) + uu___6)) else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac ( - Obj.magic + fun + uu___7 -> + Pulse_Typing_Env.fresh + g1)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" (Prims.of_int (99)) (Prims.of_int (14)) (Prims.of_int (99)) (Prims.of_int (21))))) - (FStar_Sealed.seal - ( - Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" (Prims.of_int (99)) (Prims.of_int (24)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___3 -> - Pulse_Typing_Env.fresh - g1)) - (fun uu___3 + (Obj.magic + uu___6) + (fun uu___7 -> (fun x -> + let uu___7 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + ((binder.Pulse_Syntax_Base.binder_ppname), + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -510,13 +550,10 @@ let (check : (Prims.of_int (6)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ((binder.Pulse_Syntax_Base.binder_ppname), - x))) + (Obj.magic + uu___7) (fun - uu___3 -> + uu___8 -> (fun px -> if @@ -525,26 +562,13 @@ let (check : (Pulse_Syntax_Naming.freevars_st body) then - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (102)) - (Prims.of_int (36)) - (Prims.of_int (102)) - (Prims.of_int (121))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (102)) - (Prims.of_int (11)) - (Prims.of_int (102)) - (Prims.of_int (121))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___8 + = + let uu___9 + = + FStar_Tactics_Unseal.unseal + (binder.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -562,30 +586,60 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Unseal.unseal - (binder.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name)) + uu___9) (fun - uu___3 -> + uu___10 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___11 + -> Prims.strcat "withlocal: " (Prims.strcat - uu___3 - " is free in body"))))) + uu___10 + " is free in body"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (102)) + (Prims.of_int (36)) + (Prims.of_int (102)) + (Prims.of_int (121))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (102)) + (Prims.of_int (11)) + (Prims.of_int (102)) + (Prims.of_int (121))))) + (Obj.magic + uu___8) (fun - uu___3 -> + uu___9 -> (fun - uu___3 -> + uu___9 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) - uu___3)) - uu___3)) + uu___9)) + uu___9)) else + (let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + Pulse_Syntax_Pure.term_of_nvar + px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -604,15 +658,25 @@ let (check : (Prims.of_int (37)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Syntax_Pure.term_of_nvar - px)) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun x_tm -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing_Env.push_binding + g1 x + binder.Pulse_Syntax_Base.binder_ppname + (Pulse_Typing.mk_ref + init_t))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -631,19 +695,26 @@ let (check : (Prims.of_int (81)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing_Env.push_binding - g1 x - binder.Pulse_Syntax_Base.binder_ppname - (Pulse_Typing.mk_ref - init_t))) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun g_extended -> + let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Typing.comp_withlocal_body_pre + pre + init_t + x_tm + init1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -662,19 +733,21 @@ let (check : (Prims.of_int (70)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing.comp_withlocal_body_pre - pre - init_t - x_tm - init1)) + (Obj.magic + uu___11) (fun - uu___4 -> + uu___12 + -> (fun body_pre -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -693,15 +766,21 @@ let (check : (Prims.of_int (79)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - ())) + (Obj.magic + uu___12) (fun - uu___4 -> + uu___13 + -> (fun body_pre_typing -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> post)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -720,12 +799,11 @@ let (check : (Prims.of_int (8)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - post)) + (Obj.magic + uu___13) (fun - uu___4 -> + uu___14 + -> (fun post1 -> if @@ -740,6 +818,11 @@ let (check : FStar_Pervasives_Native.None "Impossible! check_withlocal: unexpected name clash in with_local,please file a bug-report") else + (let uu___15 + = + extend_post_hint_for_local + g1 post1 + init_t x in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -759,34 +842,27 @@ let (check : (Prims.of_int (136)) (Prims.of_int (63))))) (Obj.magic - (extend_post_hint_for_local - g1 post1 - init_t x)) + uu___15) (fun - uu___5 -> + uu___16 + -> (fun body_post -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (117)) - (Prims.of_int (54)) - (Prims.of_int (120)) - (Prims.of_int (57))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (116)) - (Prims.of_int (71)) - (Prims.of_int (136)) - (Prims.of_int (63))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___16 + = + let uu___17 + = + check1 + g_extended + body_pre + () + (FStar_Pervasives_Native.Some + body_post) + binder.Pulse_Syntax_Base.binder_ppname + (Pulse_Syntax_Naming.open_st_term_nv + body px) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -804,17 +880,10 @@ let (check : (Prims.of_int (120)) (Prims.of_int (57))))) (Obj.magic - (check1 - g_extended - body_pre - () - (FStar_Pervasives_Native.Some - body_post) - binder.Pulse_Syntax_Base.binder_ppname - (Pulse_Syntax_Naming.open_st_term_nv - body px))) + uu___17) (fun - uu___5 -> + uu___18 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k @@ -823,12 +892,34 @@ let (check : body_post r binder.Pulse_Syntax_Base.binder_ppname)) - uu___5))) + uu___18) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (117)) + (Prims.of_int (54)) + (Prims.of_int (120)) + (Prims.of_int (57))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (116)) + (Prims.of_int (71)) + (Prims.of_int (136)) + (Prims.of_int (63))))) + (Obj.magic + uu___16) (fun - uu___5 -> + uu___17 + -> (fun - uu___5 -> - match uu___5 + uu___17 + -> + match uu___17 with | FStar_Pervasives.Mkdtuple3 @@ -836,6 +927,16 @@ let (check : c_body, body_typing) -> + let uu___18 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 + -> + Pulse_Syntax_Naming.close_st_term + opened_body + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -854,37 +955,20 @@ let (check : (Prims.of_int (79)) (Prims.of_int (136)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Syntax_Naming.close_st_term - opened_body - x)) + (Obj.magic + uu___18) (fun - uu___6 -> + uu___19 + -> (fun body1 -> + let uu___19 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (123)) - (Prims.of_int (18)) - (Prims.of_int (123)) - (Prims.of_int (79))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocal.fst" - (Prims.of_int (123)) - (Prims.of_int (82)) - (Prims.of_int (136)) - (Prims.of_int (63))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___20 + -> Pulse_Syntax_Base.C_ST { Pulse_Syntax_Base.u @@ -900,30 +984,44 @@ let (check : Pulse_Syntax_Base.post = (post1.Pulse_Typing.post) - })) - (fun - uu___6 -> - (fun c -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" - (Prims.of_int (124)) - (Prims.of_int (24)) - (Prims.of_int (129)) - (Prims.of_int (43))))) + (Prims.of_int (123)) + (Prims.of_int (18)) + (Prims.of_int (123)) + (Prims.of_int (79))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" - (Prims.of_int (130)) - (Prims.of_int (12)) + (Prims.of_int (123)) + (Prims.of_int (82)) (Prims.of_int (136)) (Prims.of_int (63))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___19) + (fun + uu___20 + -> + (fun c -> + let uu___20 + = + let uu___21 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + Pulse_Typing.post_hint_typing + g1 post1 + x)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -940,14 +1038,11 @@ let (check : (Prims.of_int (12)) (Prims.of_int (129)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing.post_hint_typing - g1 post1 - x)) + (Obj.magic + uu___21) (fun - uu___6 -> + uu___22 + -> (fun post_typing_rec -> @@ -956,33 +1051,40 @@ let (check : g1 c () post_typing_rec.Pulse_Typing.effect_annot_typing1 () x ())) - uu___6))) - (fun - uu___6 -> - (fun - c_typing - -> + uu___22) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" - (Prims.of_int (131)) - (Prims.of_int (18)) - (Prims.of_int (135)) - (Prims.of_int (23))))) + (Prims.of_int (124)) + (Prims.of_int (24)) + (Prims.of_int (129)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocal.fst" - (Prims.of_int (136)) - (Prims.of_int (10)) + (Prims.of_int (130)) + (Prims.of_int (12)) (Prims.of_int (136)) (Prims.of_int (63))))) + (Obj.magic + uu___20) + (fun + uu___21 + -> + (fun + c_typing + -> + let uu___21 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___22 + -> Pulse_Typing.T_WithLocal (g1, (binder.Pulse_Syntax_Base.binder_ppname), @@ -992,9 +1094,30 @@ let (check : c, x, (), (), c_typing, - body_typing))) + body_typing))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (131)) + (Prims.of_int (18)) + (Prims.of_int (135)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocal.fst" + (Prims.of_int (136)) + (Prims.of_int (10)) + (Prims.of_int (136)) + (Prims.of_int (63))))) + (Obj.magic + uu___21) (fun - uu___6 -> + uu___22 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -1018,17 +1141,18 @@ let (check : })), c, d)) res_ppname)) - uu___6))) - uu___6))) - uu___6))) - uu___6))) - uu___5))) - uu___5))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___3))) - uu___3))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___22))) + uu___21))) + uu___20))) + uu___19))) + uu___17))) + uu___16)))) + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10)))) + uu___8))) + uu___7)))) + uu___4))) uu___2))) + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Checker_WithLocalArray.ml b/src/ocaml/plugin/generated/Pulse_Checker_WithLocalArray.ml index 0ae2fc7e8..f15434a58 100644 --- a/src/ocaml/plugin/generated/Pulse_Checker_WithLocalArray.ml +++ b/src/ocaml/plugin/generated/Pulse_Checker_WithLocalArray.ml @@ -11,6 +11,10 @@ let (extend_post_hint : fun p -> fun init_t -> fun x -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Syntax_Pure.null_var x)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -22,10 +26,20 @@ let (extend_post_hint : (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" (Prims.of_int (39)) (Prims.of_int (25)) (Prims.of_int (44)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Pure.null_var x)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun arr -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Syntax_Pure.tm_exists_sl + Pulse_Syntax_Pure.u0 + (Pulse_Syntax_Base.as_binder + (Pulse_Typing.mk_seq Pulse_Syntax_Pure.u0 + init_t)) + (Pulse_Typing.mk_array_pts_to init_t arr + (Pulse_Syntax_Pure.null_bvar Prims.int_zero)))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -40,17 +54,16 @@ let (extend_post_hint : "Pulse.Checker.WithLocalArray.fst" (Prims.of_int (40)) (Prims.of_int (111)) (Prims.of_int (44)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Syntax_Pure.tm_exists_sl - Pulse_Syntax_Pure.u0 - (Pulse_Syntax_Base.as_binder - (Pulse_Typing.mk_seq Pulse_Syntax_Pure.u0 - init_t)) - (Pulse_Typing.mk_array_pts_to init_t arr - (Pulse_Syntax_Pure.null_bvar Prims.int_zero)))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun conjunct -> + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing_Env.push_binding g x + Pulse_Syntax_Base.ppname_default + (Pulse_Typing.mk_array init_t))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -69,13 +82,14 @@ let (extend_post_hint : (Prims.of_int (63)) (Prims.of_int (44)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Typing_Env.push_binding g x - Pulse_Syntax_Base.ppname_default - (Pulse_Typing.mk_array init_t))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun g' -> + let uu___3 = + Pulse_Checker_Pure.core_check_term + g' conjunct + FStar_TypeChecker_Core.E_Total + Pulse_Syntax_Pure.tm_slprop in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -94,13 +108,14 @@ let (extend_post_hint : (Prims.of_int (86)) (Prims.of_int (44)) (Prims.of_int (5))))) - (Obj.magic - (Pulse_Checker_Pure.core_check_term - g' conjunct - FStar_TypeChecker_Core.E_Total - Pulse_Syntax_Pure.tm_slprop)) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> (fun c_typing -> + let uu___4 = + Pulse_Checker_Base.extend_post_hint + g p x + (Pulse_Typing.mk_array + init_t) conjunct () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -119,17 +134,13 @@ let (extend_post_hint : (Prims.of_int (6)) (Prims.of_int (43)) (Prims.of_int (9))))) - (Obj.magic - (Pulse_Checker_Base.extend_post_hint - g p x - (Pulse_Typing.mk_array - init_t) - conjunct ())) + (Obj.magic uu___4) (fun res -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - res)))) uu___))) - uu___))) uu___))) uu___) + (fun uu___5 -> + res)))) + uu___4))) uu___3))) uu___2))) + uu___1) let (is_annotated_type_array : Pulse_Syntax_Base.term -> @@ -221,6 +232,13 @@ let (check : (FStar_Pervasives_Native.Some (head_range t)) "Allocating a mutable local variable is only allowed in non-ghost and non-atomic code" | FStar_Pervasives_Native.Some post -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + Pulse_Checker_Pure.push_context + "check_withlocal_array" + t.Pulse_Syntax_Base.range1 g)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -234,13 +252,13 @@ let (check : "Pulse.Checker.WithLocalArray.fst" (Prims.of_int (99)) (Prims.of_int (61)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - Pulse_Checker_Pure.push_context - "check_withlocal_array" - t.Pulse_Syntax_Base.range1 g)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g1 -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> t.Pulse_Syntax_Base.term1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -259,11 +277,10 @@ let (check : (Prims.of_int (61)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> t.Pulse_Syntax_Base.term1)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Pulse_Syntax_Base.Tm_WithLocalArray { Pulse_Syntax_Base.binder3 = @@ -274,84 +291,52 @@ let (check : length; Pulse_Syntax_Base.body5 = body;_} -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (101)) - (Prims.of_int (64)) - (Prims.of_int (119)) - (Prims.of_int (85))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (100)) - (Prims.of_int (73)) - (Prims.of_int (173)) - (Prims.of_int (63))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (103)) - (Prims.of_int (15)) - (Prims.of_int (103)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (104)) - (Prims.of_int (6)) - (Prims.of_int (119)) - (Prims.of_int (85))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - binder.Pulse_Syntax_Base.binder_ty)) - (fun uu___1 -> - (fun ty -> - match Pulse_Syntax_Pure.inspect_term - ty - with - | Pulse_Syntax_Pure.Tm_Unknown - -> - Obj.magic - (Pulse_Checker_Pure.compute_tot_term_type_and_u - g1 - initializer1) - | uu___1 -> - (match - is_annotated_type_array - ty - with - | FStar_Pervasives_Native.None - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (110)) - (Prims.of_int (12)) - (Prims.of_int (111)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (109)) - (Prims.of_int (10)) - (Prims.of_int (111)) - (Prims.of_int (36))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___3 = + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + binder.Pulse_Syntax_Base.binder_ty)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (103)) + (Prims.of_int (15)) + (Prims.of_int (103)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (104)) + (Prims.of_int (6)) + (Prims.of_int (119)) + (Prims.of_int (85))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun ty -> + match Pulse_Syntax_Pure.inspect_term + ty + with + | Pulse_Syntax_Pure.Tm_Unknown + -> + Obj.magic + (Pulse_Checker_Pure.compute_tot_term_type_and_u + g1 initializer1) + | uu___5 -> + (match is_annotated_type_array + ty + with + | FStar_Pervasives_Native.None + -> + let uu___6 = + let uu___7 = + Pulse_Syntax_Printer.term_to_string + ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" @@ -359,7 +344,7 @@ let (check : (Prims.of_int (14)) (Prims.of_int (111)) (Prims.of_int (35))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" @@ -367,35 +352,57 @@ let (check : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - ty)) - (fun - uu___2 -> + (Obj.magic + uu___7) + (fun uu___8 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___9 -> Prims.strcat "expected annotated type to be an array, found: " (Prims.strcat - uu___2 ""))))) - (fun - uu___2 -> + uu___8 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (110)) + (Prims.of_int (12)) + (Prims.of_int (111)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (109)) + (Prims.of_int (10)) + (Prims.of_int (111)) + (Prims.of_int (36))))) + (Obj.magic + uu___6) + (fun + uu___7 -> (fun - uu___2 -> + uu___7 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term ty)) - uu___2)) - uu___2)) - | FStar_Pervasives_Native.Some - ty1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + uu___7)) + uu___7)) + | FStar_Pervasives_Native.Some + ty1 -> + let uu___6 = + Pulse_Checker_Pure.check_universe + g1 ty1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" @@ -403,7 +410,7 @@ let (check : (Prims.of_int (35)) (Prims.of_int (113)) (Prims.of_int (54))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" @@ -411,20 +418,26 @@ let (check : (Prims.of_int (20)) (Prims.of_int (119)) (Prims.of_int (85))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe - g1 ty1)) - (fun - uu___2 -> + (Obj.magic + uu___6) + (fun + uu___7 -> (fun - uu___2 -> - match uu___2 + uu___7 -> + match uu___7 with | Prims.Mkdtuple2 (u, ty_typing) -> + let uu___8 + = + Pulse_Checker_Pure.check_term + g1 + initializer1 + FStar_TypeChecker_Core.E_Total + ty1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -444,17 +457,14 @@ let (check : (Prims.of_int (119)) (Prims.of_int (85))))) (Obj.magic - (Pulse_Checker_Pure.check_term - g1 - initializer1 - FStar_TypeChecker_Core.E_Total - ty1)) + uu___8) (fun - uu___3 -> + uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - match uu___3 + uu___10 + -> + match uu___9 with | Prims.Mkdtuple2 @@ -465,17 +475,40 @@ let (check : (init, u, ty1, (), ()))))) - uu___2)))) - uu___1))) - (fun uu___1 -> - (fun uu___1 -> - match uu___1 with + uu___7)))) + uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (101)) + (Prims.of_int (64)) + (Prims.of_int (119)) + (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (100)) + (Prims.of_int (73)) + (Prims.of_int (173)) + (Prims.of_int (63))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | FStar_Pervasives.Mkdtuple5 (init, init_u, init_t, init_t_typing, init_typing) -> + let uu___5 = + Pulse_Checker_Pure.check_tot_term + g1 length + Pulse_Typing.tm_szt in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -495,13 +528,11 @@ let (check : (Prims.of_int (173)) (Prims.of_int (63))))) (Obj.magic - (Pulse_Checker_Pure.check_tot_term - g1 length - Pulse_Typing.tm_szt)) - (fun uu___2 -> - (fun uu___2 + uu___5) + (fun uu___6 -> + (fun uu___6 -> - match uu___2 + match uu___6 with | Prims.Mkdtuple2 @@ -514,26 +545,50 @@ let (check : init_u Pulse_Syntax_Pure.u0) then - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_Syntax_Printer.term_to_string + init in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (127)) - (Prims.of_int (13)) - (Prims.of_int (129)) - (Prims.of_int (42))))) + (Prims.of_int (128)) + (Prims.of_int (16)) + (Prims.of_int (128)) + (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (125)) - (Prims.of_int (9)) - (Prims.of_int (130)) - (Prims.of_int (5))))) + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + fun x -> + Prims.strcat + (Prims.strcat + "check_withlocalarray: allocating a local variable: type " + (Prims.strcat + uu___10 + " is not universe zero (computed ")) + (Prims.strcat + x ")"))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -551,61 +606,57 @@ let (check : (Prims.of_int (129)) (Prims.of_int (42))))) (Obj.magic + uu___8) + (fun + uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + uu___9 + (Pulse_Syntax_Printer.univ_to_string + init_u))) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (128)) - (Prims.of_int (16)) - (Prims.of_int (128)) - (Prims.of_int (39))))) + (Prims.of_int (127)) + (Prims.of_int (13)) + (Prims.of_int (129)) + (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (125)) + (Prims.of_int (9)) + (Prims.of_int (130)) + (Prims.of_int (5))))) (Obj.magic - (Pulse_Syntax_Printer.term_to_string - init)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - Prims.strcat - (Prims.strcat - "check_withlocalarray: allocating a local variable: type " - (Prims.strcat - uu___3 - " is not universe zero (computed ")) - (Prims.strcat - x ")"))))) + uu___7) (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac + uu___8 -> (fun - uu___4 -> - uu___3 - (Pulse_Syntax_Printer.univ_to_string - init_u))))) - (fun - uu___3 -> - (fun - uu___3 -> + uu___8 -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (head_range t)) - uu___3)) - uu___3)) + uu___8)) + uu___8)) else + (let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Typing_Env.fresh + g1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -624,14 +675,20 @@ let (check : (Prims.of_int (24)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Pulse_Typing_Env.fresh - g1)) + (Obj.magic + uu___8) (fun - uu___4 -> + uu___9 -> (fun x -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + ((binder.Pulse_Syntax_Base.binder_ppname), + x))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -650,13 +707,11 @@ let (check : (Prims.of_int (6)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - ((binder.Pulse_Syntax_Base.binder_ppname), - x))) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun px -> if @@ -665,26 +720,13 @@ let (check : (Pulse_Syntax_Naming.freevars_st body) then - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (137)) - (Prims.of_int (16)) - (Prims.of_int (138)) - (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (135)) - (Prims.of_int (11)) - (Prims.of_int (138)) - (Prims.of_int (55))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___10 + = + let uu___11 + = + FStar_Tactics_Unseal.unseal + (binder.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -702,30 +744,62 @@ let (check : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Unseal.unseal - (binder.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name)) + uu___11) (fun - uu___4 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___13 + -> Prims.strcat "withlocalarray: " (Prims.strcat - uu___4 - " is free in body"))))) + uu___12 + " is free in body"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (137)) + (Prims.of_int (16)) + (Prims.of_int (138)) + (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (135)) + (Prims.of_int (11)) + (Prims.of_int (138)) + (Prims.of_int (55))))) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun - uu___4 -> + uu___11 + -> Obj.magic (Pulse_Typing_Env.fail g1 (FStar_Pervasives_Native.Some (body.Pulse_Syntax_Base.range1)) - uu___4)) - uu___4)) + uu___11)) + uu___11)) else + (let uu___11 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + Pulse_Syntax_Pure.term_of_nvar + px)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -744,15 +818,25 @@ let (check : (Prims.of_int (37)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Syntax_Pure.term_of_nvar - px)) + (Obj.magic + uu___11) (fun - uu___5 -> + uu___12 + -> (fun x_tm -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing_Env.push_binding + g1 x + binder.Pulse_Syntax_Base.binder_ppname + (Pulse_Typing.mk_array + init_t))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -771,19 +855,26 @@ let (check : (Prims.of_int (83)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing_Env.push_binding - g1 x - binder.Pulse_Syntax_Base.binder_ppname - (Pulse_Typing.mk_array - init_t))) + (Obj.magic + uu___12) (fun - uu___5 -> + uu___13 + -> (fun g_extended -> + let uu___13 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___14 + -> + Pulse_Typing.comp_withlocal_array_body_pre + pre + init_t + x_tm init + len)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -802,19 +893,21 @@ let (check : (Prims.of_int (80)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing.comp_withlocal_array_body_pre - pre - init_t - x_tm init - len)) + (Obj.magic + uu___13) (fun - uu___5 -> + uu___14 + -> (fun body_pre -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> ())) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -833,15 +926,21 @@ let (check : (Prims.of_int (92)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - ())) + (Obj.magic + uu___14) (fun - uu___5 -> + uu___15 + -> (fun body_pre_typing -> + let uu___15 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___16 + -> post)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -860,12 +959,11 @@ let (check : (Prims.of_int (8)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - post)) + (Obj.magic + uu___15) (fun - uu___5 -> + uu___16 + -> (fun post1 -> if @@ -880,6 +978,11 @@ let (check : FStar_Pervasives_Native.None "Impossible! check_withlocal: unexpected name clash in with_local,please file a bug-report") else + (let uu___17 + = + extend_post_hint + g1 post1 + init_t x in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -899,34 +1002,27 @@ let (check : (Prims.of_int (173)) (Prims.of_int (63))))) (Obj.magic - (extend_post_hint - g1 post1 - init_t x)) + uu___17) (fun - uu___6 -> + uu___18 + -> (fun body_post -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (153)) - (Prims.of_int (54)) - (Prims.of_int (156)) - (Prims.of_int (57))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (152)) - (Prims.of_int (61)) - (Prims.of_int (173)) - (Prims.of_int (63))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___18 + = + let uu___19 + = + check1 + g_extended + body_pre + () + (FStar_Pervasives_Native.Some + body_post) + binder.Pulse_Syntax_Base.binder_ppname + (Pulse_Syntax_Naming.open_st_term_nv + body px) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -944,17 +1040,10 @@ let (check : (Prims.of_int (156)) (Prims.of_int (57))))) (Obj.magic - (check1 - g_extended - body_pre - () - (FStar_Pervasives_Native.Some - body_post) - binder.Pulse_Syntax_Base.binder_ppname - (Pulse_Syntax_Naming.open_st_term_nv - body px))) + uu___19) (fun - uu___6 -> + uu___20 + -> (fun r -> Obj.magic (Pulse_Checker_Base.apply_checker_result_k @@ -963,12 +1052,34 @@ let (check : body_post r binder.Pulse_Syntax_Base.binder_ppname)) - uu___6))) + uu___20) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (153)) + (Prims.of_int (54)) + (Prims.of_int (156)) + (Prims.of_int (57))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (152)) + (Prims.of_int (61)) + (Prims.of_int (173)) + (Prims.of_int (63))))) + (Obj.magic + uu___18) (fun - uu___6 -> + uu___19 + -> (fun - uu___6 -> - match uu___6 + uu___19 + -> + match uu___19 with | FStar_Pervasives.Mkdtuple3 @@ -976,6 +1087,16 @@ let (check : c_body, body_typing) -> + let uu___20 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> + Pulse_Syntax_Naming.close_st_term + opened_body + x)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -994,37 +1115,20 @@ let (check : (Prims.of_int (79)) (Prims.of_int (173)) (Prims.of_int (63))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Syntax_Naming.close_st_term - opened_body - x)) + (Obj.magic + uu___20) (fun - uu___7 -> + uu___21 + -> (fun body1 -> + let uu___21 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (159)) - (Prims.of_int (18)) - (Prims.of_int (159)) - (Prims.of_int (79))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (159)) - (Prims.of_int (82)) - (Prims.of_int (173)) - (Prims.of_int (63))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___22 + -> Pulse_Syntax_Base.C_ST { Pulse_Syntax_Base.u @@ -1040,30 +1144,44 @@ let (check : Pulse_Syntax_Base.post = (post1.Pulse_Typing.post) - })) - (fun - uu___7 -> - (fun c -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (160)) - (Prims.of_int (24)) - (Prims.of_int (165)) - (Prims.of_int (43))))) + (Prims.of_int (159)) + (Prims.of_int (18)) + (Prims.of_int (159)) + (Prims.of_int (79))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (166)) - (Prims.of_int (12)) + (Prims.of_int (159)) + (Prims.of_int (82)) (Prims.of_int (173)) (Prims.of_int (63))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___21) + (fun + uu___22 + -> + (fun c -> + let uu___22 + = + let uu___23 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + Pulse_Typing.post_hint_typing + g1 post1 + x)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1080,14 +1198,11 @@ let (check : (Prims.of_int (12)) (Prims.of_int (165)) (Prims.of_int (43))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing.post_hint_typing - g1 post1 - x)) + (Obj.magic + uu___23) (fun - uu___7 -> + uu___24 + -> (fun post_typing_rec -> @@ -1096,33 +1211,40 @@ let (check : g1 c () post_typing_rec.Pulse_Typing.effect_annot_typing1 () x ())) - uu___7))) - (fun - uu___7 -> - (fun - c_typing - -> + uu___24) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (167)) - (Prims.of_int (18)) - (Prims.of_int (172)) - (Prims.of_int (23))))) + (Prims.of_int (160)) + (Prims.of_int (24)) + (Prims.of_int (165)) + (Prims.of_int (43))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Checker.WithLocalArray.fst" - (Prims.of_int (173)) - (Prims.of_int (10)) + (Prims.of_int (166)) + (Prims.of_int (12)) (Prims.of_int (173)) (Prims.of_int (63))))) + (Obj.magic + uu___22) + (fun + uu___23 + -> + (fun + c_typing + -> + let uu___23 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___24 + -> Pulse_Typing.T_WithLocalArray (g1, (binder.Pulse_Syntax_Base.binder_ppname), @@ -1133,9 +1255,30 @@ let (check : c, x, (), (), (), c_typing, - body_typing))) + body_typing))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (167)) + (Prims.of_int (18)) + (Prims.of_int (172)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Checker.WithLocalArray.fst" + (Prims.of_int (173)) + (Prims.of_int (10)) + (Prims.of_int (173)) + (Prims.of_int (63))))) + (Obj.magic + uu___23) (fun - uu___7 -> + uu___24 + -> (fun d -> Obj.magic (Pulse_Checker_Base.checker_result_for_st_typing @@ -1161,18 +1304,19 @@ let (check : })), c, d)) res_ppname)) - uu___7))) - uu___7))) - uu___7))) - uu___7))) - uu___6))) + uu___24))) + uu___23))) + uu___22))) + uu___21))) + uu___19))) + uu___18)))) + uu___16))) + uu___15))) + uu___14))) + uu___13))) + uu___12)))) + uu___10))) + uu___9)))) uu___6))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___5))) - uu___4))) - uu___4))) - uu___2))) - uu___1))) uu___))) uu___) \ No newline at end of file + uu___4))) uu___2))) + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_JoinComp.ml b/src/ocaml/plugin/generated/Pulse_JoinComp.ml index e5ba13860..aff72926f 100644 --- a/src/ocaml/plugin/generated/Pulse_JoinComp.ml +++ b/src/ocaml/plugin/generated/Pulse_JoinComp.ml @@ -24,6 +24,10 @@ let rec (join_comps : fun c_else -> fun e_else_typing -> fun post -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> g_then)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -35,19 +39,18 @@ let rec (join_comps : (FStar_Range.mk_range "Pulse.JoinComp.fst" (Prims.of_int (65)) (Prims.of_int (2)) (Prims.of_int (86)) (Prims.of_int (49))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> g_then)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun g -> match (c_then, c_else) with | (Pulse_Syntax_Base.C_STAtomic - (uu___, obs1, uu___1), + (uu___1, obs1, uu___2), Pulse_Syntax_Base.C_STAtomic - (uu___2, obs2, uu___3)) -> + (uu___3, obs2, uu___4)) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> + (fun uu___5 -> FStar_Pervasives.Mkdtuple3 ((Pulse_Syntax_Base.C_STAtomic ((Pulse_Syntax_Base.comp_inames @@ -84,33 +87,37 @@ let rec (join_comps : (g_else, c_else, (Pulse_Typing.join_obs obs1 obs2))))))))) - | (Pulse_Syntax_Base.C_STGhost (uu___, uu___1), - Pulse_Syntax_Base.C_STGhost (uu___2, uu___3)) + | (Pulse_Syntax_Base.C_STGhost (uu___1, uu___2), + Pulse_Syntax_Base.C_STGhost (uu___3, uu___4)) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> + (fun uu___5 -> FStar_Pervasives.Mkdtuple3 (c_then, e_then_typing, e_else_typing)))) - | (Pulse_Syntax_Base.C_ST uu___, - Pulse_Syntax_Base.C_ST uu___1) -> + | (Pulse_Syntax_Base.C_ST uu___1, + Pulse_Syntax_Base.C_ST uu___2) -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> FStar_Pervasives.Mkdtuple3 (c_then, e_then_typing, e_else_typing)))) - | uu___ -> + | uu___1 -> Obj.magic (Obj.repr (match (c_then, c_else) with | (Pulse_Syntax_Base.C_STGhost - (uu___1, uu___2), + (uu___2, uu___3), Pulse_Syntax_Base.C_STAtomic - (uu___3, uu___4, uu___5)) -> + (uu___4, uu___5, uu___6)) -> + let uu___7 = + Pulse_Typing_Combinators.lift_ghost_atomic + g_then e_then c_then + e_then_typing in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -128,11 +135,8 @@ let rec (join_comps : (Prims.of_int (6)) (Prims.of_int (81)) (Prims.of_int (49))))) - (Obj.magic - (Pulse_Typing_Combinators.lift_ghost_atomic - g_then e_then c_then - e_then_typing)) - (fun uu___6 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun d -> Obj.magic (join_comps g_then e_then @@ -140,11 +144,15 @@ let rec (join_comps : c_then) d g_else e_else c_else e_else_typing post)) - uu___6) + uu___8) | (Pulse_Syntax_Base.C_STAtomic - (uu___1, uu___2, uu___3), + (uu___2, uu___3, uu___4), Pulse_Syntax_Base.C_STGhost - (uu___4, uu___5)) -> + (uu___5, uu___6)) -> + let uu___7 = + Pulse_Typing_Combinators.lift_ghost_atomic + g_else e_else c_else + e_else_typing in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -162,11 +170,8 @@ let rec (join_comps : (Prims.of_int (6)) (Prims.of_int (86)) (Prims.of_int (49))))) - (Obj.magic - (Pulse_Typing_Combinators.lift_ghost_atomic - g_else e_else c_else - e_else_typing)) - (fun uu___6 -> + (Obj.magic uu___7) + (fun uu___8 -> (fun d -> Obj.magic (join_comps g_then e_then @@ -174,4 +179,4 @@ let rec (join_comps : g_else e_else (Pulse_Typing_Combinators.st_ghost_as_atomic c_else) d post)) - uu___6)))) uu___) \ No newline at end of file + uu___8)))) uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_PP.ml b/src/ocaml/plugin/generated/Pulse_PP.ml index e5d1fd0a6..cc49a3f99 100644 --- a/src/ocaml/plugin/generated/Pulse_PP.ml +++ b/src/ocaml/plugin/generated/Pulse_PP.ml @@ -25,6 +25,7 @@ let show_from_pp : 'a . 'a printable -> 'a Pulse_Show.tac_showable = { Pulse_Show.show = (fun x -> + let uu___ = pp d x in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -35,16 +36,17 @@ let show_from_pp : 'a . 'a printable -> 'a Pulse_Show.tac_showable = (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (47)) (Prims.of_int (19)) (Prims.of_int (47)) - (Prims.of_int (32))))) (Obj.magic (pp d x)) - (fun uu___ -> + (Prims.of_int (32))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.render uu___))) + (fun uu___2 -> FStar_Pprint.render uu___1))) } let from_show : 'a . 'a Pulse_Show.tac_showable -> 'a printable = fun d -> { pp = (fun x -> + let uu___ = Pulse_Show.show d x in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -55,11 +57,10 @@ let from_show : 'a . 'a Pulse_Show.tac_showable -> 'a printable = (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (52)) (Prims.of_int (17)) (Prims.of_int (52)) - (Prims.of_int (42))))) - (Obj.magic (Pulse_Show.show d x)) - (fun uu___ -> + (Prims.of_int (42))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.arbitrary_string uu___))) + (fun uu___2 -> FStar_Pprint.arbitrary_string uu___1))) } let (printable_string : Prims.string printable) = from_show Pulse_Show.tac_showable_string @@ -87,7 +88,8 @@ let printable_option : | FStar_Pervasives_Native.Some v -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = pp uu___ v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" @@ -98,13 +100,13 @@ let printable_option : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (64)) (Prims.of_int (29)) (Prims.of_int (64)) (Prims.of_int (58))))) - (Obj.magic (pp uu___ v)) - (fun uu___2 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___4 -> FStar_Pprint.op_Hat_Slash_Hat (FStar_Pprint.doc_of_string "Some") - uu___2))))) uu___1) + uu___3))))) uu___1) } let rec separate_map : 'a . @@ -129,7 +131,8 @@ let rec separate_map : | x::xs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f x in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" @@ -140,9 +143,34 @@ let rec separate_map : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (73)) (Prims.of_int (13)) (Prims.of_int (73)) (Prims.of_int (49))))) - (Obj.magic (f x)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = separate_map sep f xs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (73)) + (Prims.of_int (28)) + (Prims.of_int (73)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (73)) + (Prims.of_int (20)) + (Prims.of_int (73)) + (Prims.of_int (49))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Slash_Hat + sep uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -161,42 +189,19 @@ let rec separate_map : (Prims.of_int (13)) (Prims.of_int (73)) (Prims.of_int (49))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (73)) - (Prims.of_int (28)) - (Prims.of_int (73)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (73)) - (Prims.of_int (20)) - (Prims.of_int (73)) - (Prims.of_int (49))))) - (Obj.magic - (separate_map sep f xs)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Slash_Hat - sep uu___1)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat uu___ - uu___1)))) uu___)))) uu___2 + (fun uu___4 -> + FStar_Pprint.op_Hat_Hat uu___1 + uu___3)))) uu___1)))) uu___2 uu___1 uu___ let printable_list : 'a . 'a printable -> 'a Prims.list printable = fun uu___ -> { pp = (fun l -> + let uu___1 = separate_map FStar_Pprint.comma (pp uu___) l in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -207,11 +212,10 @@ let printable_list : 'a . 'a printable -> 'a Prims.list printable = (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (76)) (Prims.of_int (17)) (Prims.of_int (76)) - (Prims.of_int (51))))) - (Obj.magic (separate_map FStar_Pprint.comma (pp uu___) l)) - (fun uu___1 -> + (Prims.of_int (51))))) (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> FStar_Pprint.brackets uu___1))) + (fun uu___3 -> FStar_Pprint.brackets uu___2))) } let (printable_term : Pulse_Syntax_Base.term printable) = { pp = Pulse_Syntax_Printer.term_to_doc } @@ -232,6 +236,21 @@ let (pp_record : (FStar_Pprint.document, unit) FStar_Tactics_Effect.tac_repr) = fun flds -> + let uu___ = + separate_map (FStar_Pprint.doc_of_string ";") + (fun uu___1 -> + (fun uu___1 -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + match uu___1 with + | (s, d) -> + FStar_Pprint.group + (FStar_Pprint.op_Hat_Slash_Hat + (FStar_Pprint.doc_of_string s) + (FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.equals (FStar_Pprint.group d)))))) + uu___1) flds in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -241,90 +260,272 @@ let (pp_record : (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (95)) (Prims.of_int (2)) (Prims.of_int (95)) (Prims.of_int (25))))) - (Obj.magic - (separate_map (FStar_Pprint.doc_of_string ";") - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (s, d) -> - FStar_Pprint.group - (FStar_Pprint.op_Hat_Slash_Hat - (FStar_Pprint.doc_of_string s) - (FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.equals - (FStar_Pprint.group d)))))) uu___) flds)) + (Obj.magic uu___) (fun flds_doc -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> FStar_Pprint.braces (FStar_Pprint.align flds_doc))) + (fun uu___1 -> FStar_Pprint.braces (FStar_Pprint.align flds_doc))) let (printable_post_hint_t : Pulse_Typing.post_hint_t printable) = { pp = (fun h -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) - (Prims.of_int (20)) (Prims.of_int (103)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) - (Prims.of_int (10)) (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (22)) - (Prims.of_int (99)) (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (20)) - (Prims.of_int (103)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___ = + let uu___1 = + let uu___2 = pp printable_env h.Pulse_Typing.g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (27)) (Prims.of_int (99)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (22)) (Prims.of_int (99)) + (Prims.of_int (33))))) (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> ("g", uu___3))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (22)) (Prims.of_int (99)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (20)) (Prims.of_int (103)) + (Prims.of_int (41))))) (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = + pp pp_effect_annot h.Pulse_Typing.effect_annot in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (100)) (Prims.of_int (38)) + (Prims.of_int (100)) (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (100)) (Prims.of_int (22)) + (Prims.of_int (100)) (Prims.of_int (55))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> ("effect_annot", uu___6))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (27)) - (Prims.of_int (99)) (Prims.of_int (33))))) + (Prims.of_int (100)) (Prims.of_int (22)) + (Prims.of_int (100)) (Prims.of_int (55))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (22)) - (Prims.of_int (99)) (Prims.of_int (33))))) - (Obj.magic (pp printable_env h.Pulse_Typing.g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ("g", uu___))))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (20)) - (Prims.of_int (103)) (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (99)) (Prims.of_int (20)) - (Prims.of_int (103)) (Prims.of_int (41))))) - (Obj.magic + (Prims.of_int (99)) (Prims.of_int (20)) + (Prims.of_int (103)) (Prims.of_int (41))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + let uu___8 = + pp printable_term h.Pulse_Typing.ret_ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (101)) + (Prims.of_int (32)) + (Prims.of_int (101)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (101)) + (Prims.of_int (22)) + (Prims.of_int (101)) + (Prims.of_int (43))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> ("ret_ty", uu___9))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (101)) + (Prims.of_int (22)) + (Prims.of_int (101)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + let uu___11 = + pp printable_universe + h.Pulse_Typing.u in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (102)) + (Prims.of_int (27)) + (Prims.of_int (102)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (102)) + (Prims.of_int (22)) + (Prims.of_int (102)) + (Prims.of_int (33))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + ("u", uu___12))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (102)) + (Prims.of_int (22)) + (Prims.of_int (102)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (Obj.magic uu___10) + (fun uu___11 -> + (fun uu___11 -> + let uu___12 = + let uu___13 = + let uu___14 = + pp printable_term + h.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (103)) + (Prims.of_int (30)) + (Prims.of_int (103)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (103)) + (Prims.of_int (22)) + (Prims.of_int (103)) + (Prims.of_int (39))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + ("post", + uu___15))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (103)) + (Prims.of_int (22)) + (Prims.of_int (103)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + [uu___14])) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + uu___11 :: + uu___13)))) + uu___11) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> uu___8 :: + uu___10)))) uu___8) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (100)) - (Prims.of_int (22)) - (Prims.of_int (100)) - (Prims.of_int (55))))) + (Prims.of_int (99)) + (Prims.of_int (20)) + (Prims.of_int (103)) + (Prims.of_int (41))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" @@ -332,267 +533,39 @@ let (printable_post_hint_t : Pulse_Typing.post_hint_t printable) = (Prims.of_int (20)) (Prims.of_int (103)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (100)) - (Prims.of_int (38)) - (Prims.of_int (100)) - (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (100)) - (Prims.of_int (22)) - (Prims.of_int (100)) - (Prims.of_int (55))))) - (Obj.magic - (pp pp_effect_annot - h.Pulse_Typing.effect_annot)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - ("effect_annot", uu___1))))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (101)) - (Prims.of_int (22)) - (Prims.of_int (101)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (101)) - (Prims.of_int (32)) - (Prims.of_int (101)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (101)) - (Prims.of_int (22)) - (Prims.of_int (101)) - (Prims.of_int (43))))) - (Obj.magic - (pp - printable_term - h.Pulse_Typing.ret_ty)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - ("ret_ty", - uu___2))))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (102)) - (Prims.of_int (22)) - (Prims.of_int (102)) - (Prims.of_int (33))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (102)) - (Prims.of_int (27)) - (Prims.of_int (102)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (102)) - (Prims.of_int (22)) - (Prims.of_int (102)) - (Prims.of_int (33))))) - (Obj.magic - (pp - printable_universe - h.Pulse_Typing.u)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - ("u", - uu___3))))) - ( - fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (103)) - (Prims.of_int (22)) - (Prims.of_int (103)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (99)) - (Prims.of_int (20)) - (Prims.of_int (103)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (103)) - (Prims.of_int (30)) - (Prims.of_int (103)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (103)) - (Prims.of_int (22)) - (Prims.of_int (103)) - (Prims.of_int (39))))) - (Obj.magic - (pp - printable_term - h.Pulse_Typing.post)) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - ("post", - uu___4))))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - [uu___4])))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___2 :: - uu___3)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___1 :: - uu___2)))) uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___ :: uu___1)))) uu___))) - (fun uu___ -> (fun uu___ -> Obj.magic (pp_record uu___)) uu___)) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___5 :: uu___7)))) + uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (99)) (Prims.of_int (20)) + (Prims.of_int (103)) (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (99)) (Prims.of_int (20)) + (Prims.of_int (103)) (Prims.of_int (41))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___2 :: uu___4)))) uu___2) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (20)) (Prims.of_int (103)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (99)) + (Prims.of_int (10)) (Prims.of_int (103)) + (Prims.of_int (41))))) (Obj.magic uu___) + (fun uu___1 -> (fun uu___1 -> Obj.magic (pp_record uu___1)) uu___1)) } let printable_tuple2 : 'a 'b . 'a printable -> 'b printable -> ('a * 'b) printable = @@ -603,6 +576,67 @@ let printable_tuple2 : (fun uu___2 -> match uu___2 with | (x, y) -> + let uu___3 = + let uu___4 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) (Prims.of_int (30)) + (Prims.of_int (108)) (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) (Prims.of_int (29)) + (Prims.of_int (108)) (Prims.of_int (53))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) + (Prims.of_int (48)) + (Prims.of_int (108)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) + (Prims.of_int (38)) + (Prims.of_int (108)) + (Prims.of_int (52))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___8)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) + (Prims.of_int (38)) + (Prims.of_int (108)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (108)) + (Prims.of_int (29)) + (Prims.of_int (108)) + (Prims.of_int (53))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.op_Hat_Hat uu___5 uu___7)))) + uu___5) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -614,71 +648,10 @@ let printable_tuple2 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (108)) (Prims.of_int (22)) (Prims.of_int (108)) (Prims.of_int (53))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (108)) (Prims.of_int (30)) - (Prims.of_int (108)) (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (108)) (Prims.of_int (29)) - (Prims.of_int (108)) (Prims.of_int (53))))) - (Obj.magic (pp uu___ x)) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (108)) - (Prims.of_int (38)) - (Prims.of_int (108)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (108)) - (Prims.of_int (29)) - (Prims.of_int (108)) - (Prims.of_int (53))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (108)) - (Prims.of_int (48)) - (Prims.of_int (108)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (108)) - (Prims.of_int (38)) - (Prims.of_int (108)) - (Prims.of_int (52))))) - (Obj.magic (pp uu___1 y)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.op_Hat_Hat uu___3 - uu___4)))) uu___3))) - (fun uu___3 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> FStar_Pprint.parens uu___3))) + (fun uu___5 -> FStar_Pprint.parens uu___4))) } let printable_tuple3 : 'a 'b 'c . @@ -692,6 +665,137 @@ let printable_tuple3 : (fun uu___3 -> match uu___3 with | (x, y, z) -> + let uu___4 = + let uu___5 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) (Prims.of_int (33)) + (Prims.of_int (113)) (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) (Prims.of_int (32)) + (Prims.of_int (113)) (Prims.of_int (74))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + let uu___9 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (51)) + (Prims.of_int (113)) + (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (51)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = pp uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (69)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (59)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___13)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (59)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (51)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + FStar_Pprint.op_Hat_Hat + uu___10 uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (51)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (41)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___9)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (41)) + (Prims.of_int (113)) + (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (113)) + (Prims.of_int (32)) + (Prims.of_int (113)) + (Prims.of_int (74))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.op_Hat_Hat uu___6 + uu___8)))) uu___6) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -703,147 +807,10 @@ let printable_tuple3 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (113)) (Prims.of_int (25)) (Prims.of_int (113)) (Prims.of_int (74))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (113)) (Prims.of_int (33)) - (Prims.of_int (113)) (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (113)) (Prims.of_int (32)) - (Prims.of_int (113)) (Prims.of_int (74))))) - (Obj.magic (pp uu___ x)) - (fun uu___4 -> - (fun uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (41)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (32)) - (Prims.of_int (113)) - (Prims.of_int (74))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (51)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (41)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (51)) - (Prims.of_int (113)) - (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (51)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (Obj.magic (pp uu___1 y)) - (fun uu___5 -> - (fun uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (59)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (51)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (69)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (113)) - (Prims.of_int (59)) - (Prims.of_int (113)) - (Prims.of_int (73))))) - (Obj.magic - (pp - uu___2 z)) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___6)))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 - -> - FStar_Pprint.op_Hat_Hat - uu___5 - uu___6)))) - uu___5))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___5)))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - FStar_Pprint.op_Hat_Hat uu___4 - uu___5)))) uu___4))) - (fun uu___4 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> FStar_Pprint.parens uu___4))) + (fun uu___6 -> FStar_Pprint.parens uu___5))) } let printable_tuple4 : 'a 'b 'c 'd . @@ -860,241 +827,233 @@ let printable_tuple4 : (fun uu___4 -> match uu___4 with | (x, y, z, w) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (118)) (Prims.of_int (35)) - (Prims.of_int (118)) (Prims.of_int (95))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (118)) (Prims.of_int (28)) - (Prims.of_int (118)) (Prims.of_int (95))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (36)) - (Prims.of_int (118)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (35)) - (Prims.of_int (118)) - (Prims.of_int (95))))) - (Obj.magic (pp uu___ x)) - (fun uu___5 -> - (fun uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (44)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (35)) - (Prims.of_int (118)) - (Prims.of_int (95))))) + let uu___5 = + let uu___6 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) (Prims.of_int (36)) + (Prims.of_int (118)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) (Prims.of_int (35)) + (Prims.of_int (118)) (Prims.of_int (95))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + let uu___10 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (54)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (44)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (54)) - (Prims.of_int (118)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (54)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (Obj.magic (pp uu___1 y)) - (fun uu___6 -> - (fun uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (54)) + (Prims.of_int (118)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (54)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (Obj.magic uu___10) + (fun uu___11 -> + (fun uu___11 -> + let uu___12 = + let uu___13 = + let uu___14 = pp uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (72)) + (Prims.of_int (118)) + (Prims.of_int (76))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (72)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (Obj.magic uu___14) + (fun uu___15 -> + (fun uu___15 -> + let uu___16 = + let uu___17 = + pp uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (118)) - (Prims.of_int (62)) + (Prims.of_int (90)) (Prims.of_int (118)) (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (118)) - (Prims.of_int (54)) + (Prims.of_int (80)) (Prims.of_int (118)) (Prims.of_int (94))))) + (Obj.magic uu___17) + (fun uu___18 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___19 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___18)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (72)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (62)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (72)) - (Prims.of_int (118)) - (Prims.of_int (76))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (72)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (Obj.magic - (pp - uu___2 z)) - (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (118)) (Prims.of_int (80)) (Prims.of_int (118)) (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (118)) (Prims.of_int (72)) (Prims.of_int (118)) (Prims.of_int (94))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (90)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (118)) - (Prims.of_int (80)) - (Prims.of_int (118)) - (Prims.of_int (94))))) - (Obj.magic - (pp - uu___3 w)) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - FStar_Pprint.op_Hat_Hat - uu___7 - uu___8)))) - uu___7))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___7)))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___8 -> + (Obj.magic + uu___16) + (fun uu___17 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___18 + -> FStar_Pprint.op_Hat_Hat - uu___6 - uu___7)))) - uu___6))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___6)))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> - FStar_Pprint.op_Hat_Hat - uu___5 uu___6)))) uu___5))) - (fun uu___5 -> + uu___15 + uu___17)))) + uu___15) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (72)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (62)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___14)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (62)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (54)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + FStar_Pprint.op_Hat_Hat + uu___11 uu___13)))) + uu___11) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (54)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (44)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___10)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (44)) + (Prims.of_int (118)) + (Prims.of_int (94))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (118)) + (Prims.of_int (35)) + (Prims.of_int (118)) + (Prims.of_int (95))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.op_Hat_Hat uu___7 + uu___9)))) uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) (Prims.of_int (35)) + (Prims.of_int (118)) (Prims.of_int (95))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (118)) (Prims.of_int (28)) + (Prims.of_int (118)) (Prims.of_int (95))))) + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> FStar_Pprint.parens uu___5))) + (fun uu___7 -> FStar_Pprint.parens uu___6))) } let printable_tuple5 : 'a 'b 'c 'd 'e . @@ -1113,227 +1072,109 @@ let printable_tuple5 : (fun uu___5 -> match uu___5 with | (x, y, z, w, v) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (123)) (Prims.of_int (38)) - (Prims.of_int (123)) (Prims.of_int (116))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (123)) (Prims.of_int (31)) - (Prims.of_int (123)) (Prims.of_int (116))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (39)) - (Prims.of_int (123)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (38)) - (Prims.of_int (123)) - (Prims.of_int (116))))) - (Obj.magic (pp uu___ x)) - (fun uu___6 -> - (fun uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (47)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (38)) - (Prims.of_int (123)) - (Prims.of_int (116))))) + let uu___6 = + let uu___7 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (123)) (Prims.of_int (39)) + (Prims.of_int (123)) (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (123)) (Prims.of_int (38)) + (Prims.of_int (123)) (Prims.of_int (116))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + let uu___11 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (57)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (47)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (57)) - (Prims.of_int (123)) - (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (57)) - (Prims.of_int (123)) - (Prims.of_int (115))))) + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (57)) + (Prims.of_int (123)) + (Prims.of_int (61))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (57)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic uu___11) + (fun uu___12 -> + (fun uu___12 -> + let uu___13 = + let uu___14 = + let uu___15 = pp uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (pp uu___1 y)) - (fun uu___7 -> - (fun uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (65)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (57)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (75)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (65)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (75)) - (Prims.of_int (123)) - (Prims.of_int (79))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (75)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - (pp - uu___2 z)) - (fun - uu___8 -> - (fun - uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (83)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (75)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (93)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (123)) - (Prims.of_int (83)) - (Prims.of_int (123)) - (Prims.of_int (115))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (75)) + (Prims.of_int (123)) + (Prims.of_int (79))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (75)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic uu___15) + (fun uu___16 -> + (fun uu___16 -> + let uu___17 = + let uu___18 = + let uu___19 = + pp uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) (Prims.of_int (93)) (Prims.of_int (123)) - (Prims.of_int (97))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (97))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) (Prims.of_int (93)) (Prims.of_int (123)) (Prims.of_int (115))))) - (Obj.magic - (pp - uu___3 w)) - (fun - uu___9 -> - (fun - uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___19) + (fun uu___20 + -> + (fun + uu___20 + -> + let uu___21 + = + let uu___22 + = + pp uu___4 + v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) - (Prims.of_int (101)) + (Prims.of_int (111)) (Prims.of_int (123)) (Prims.of_int (115))))) (FStar_Sealed.seal @@ -1341,17 +1182,29 @@ let printable_tuple5 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) - (Prims.of_int (93)) + (Prims.of_int (101)) (Prims.of_int (123)) (Prims.of_int (115))))) (Obj.magic + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___23)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) - (Prims.of_int (111)) + (Prims.of_int (101)) (Prims.of_int (123)) (Prims.of_int (115))))) (FStar_Sealed.seal @@ -1359,83 +1212,191 @@ let printable_tuple5 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (123)) - (Prims.of_int (101)) + (Prims.of_int (93)) (Prims.of_int (123)) (Prims.of_int (115))))) (Obj.magic - (pp - uu___4 v)) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___10)))) + uu___21) (fun - uu___10 + uu___22 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___23 -> FStar_Pprint.op_Hat_Hat - uu___9 - uu___10)))) - uu___9))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___9)))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 + uu___20 + uu___22)))) + uu___20) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (93)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (83)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic + uu___18) + (fun uu___19 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 -> - FStar_Pprint.op_Hat_Hat - uu___8 - uu___9)))) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> FStar_Pprint.op_Hat_Slash_Hat FStar_Pprint.comma - uu___8)))) - (fun uu___8 + uu___19)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (83)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (75)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic + uu___17) + (fun uu___18 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> FStar_Pprint.op_Hat_Hat - uu___7 - uu___8)))) - uu___7))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___7)))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> - FStar_Pprint.op_Hat_Hat - uu___6 uu___7)))) uu___6))) - (fun uu___6 -> + uu___16 + uu___18)))) + uu___16) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (75)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (65)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___15)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (65)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (57)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + FStar_Pprint.op_Hat_Hat + uu___12 uu___14)))) + uu___12) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (57)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (47)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___11)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (47)) + (Prims.of_int (123)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (123)) + (Prims.of_int (38)) + (Prims.of_int (123)) + (Prims.of_int (116))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + FStar_Pprint.op_Hat_Hat uu___8 + uu___10)))) uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (123)) (Prims.of_int (38)) + (Prims.of_int (123)) (Prims.of_int (116))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (123)) (Prims.of_int (31)) + (Prims.of_int (123)) (Prims.of_int (116))))) + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> FStar_Pprint.parens uu___6))) + (fun uu___8 -> FStar_Pprint.parens uu___7))) } let printable_tuple6 : 'a 'b 'c 'd 'e 'f . @@ -1457,218 +1418,170 @@ let printable_tuple6 : (fun uu___6 -> match uu___6 with | (x, y, z, w, v, u) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (128)) (Prims.of_int (41)) - (Prims.of_int (128)) (Prims.of_int (137))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (128)) (Prims.of_int (34)) - (Prims.of_int (128)) (Prims.of_int (137))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (42)) - (Prims.of_int (128)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (41)) - (Prims.of_int (128)) - (Prims.of_int (137))))) - (Obj.magic (pp uu___ x)) - (fun uu___7 -> - (fun uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (50)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (41)) - (Prims.of_int (128)) - (Prims.of_int (137))))) + let uu___7 = + let uu___8 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (42)) + (Prims.of_int (128)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (41)) + (Prims.of_int (128)) + (Prims.of_int (137))))) + (Obj.magic uu___8) + (fun uu___9 -> + (fun uu___9 -> + let uu___10 = + let uu___11 = + let uu___12 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (60)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (50)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (60)) - (Prims.of_int (128)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (60)) - (Prims.of_int (128)) - (Prims.of_int (136))))) + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (60)) + (Prims.of_int (128)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (60)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (Obj.magic uu___12) + (fun uu___13 -> + (fun uu___13 -> + let uu___14 = + let uu___15 = + let uu___16 = pp uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (pp uu___1 y)) - (fun uu___8 -> - (fun uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (68)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (60)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (78)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (68)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (78)) - (Prims.of_int (128)) - (Prims.of_int (82))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (128)) - (Prims.of_int (78)) - (Prims.of_int (128)) - (Prims.of_int (136))))) - (Obj.magic - (pp - uu___2 z)) - (fun - uu___9 -> - (fun - uu___9 -> + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (78)) + (Prims.of_int (128)) + (Prims.of_int (82))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (78)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (Obj.magic uu___16) + (fun uu___17 -> + (fun uu___17 -> + let uu___18 = + let uu___19 = + let uu___20 = + pp uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (86)) + (Prims.of_int (96)) (Prims.of_int (128)) - (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (100))))) + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (78)) + (Prims.of_int (96)) (Prims.of_int (128)) (Prims.of_int (136))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___20) + (fun uu___21 + -> + (fun + uu___21 + -> + let uu___22 + = + let uu___23 + = + let uu___24 + = + pp uu___4 + v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (96)) + (Prims.of_int (114)) (Prims.of_int (128)) - (Prims.of_int (136))))) + (Prims.of_int (118))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (86)) + (Prims.of_int (114)) (Prims.of_int (128)) (Prims.of_int (136))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24) + (fun + uu___25 + -> + (fun + uu___25 + -> + let uu___26 + = + let uu___27 + = + pp uu___5 + u in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (96)) + (Prims.of_int (132)) (Prims.of_int (128)) - (Prims.of_int (100))))) + (Prims.of_int (136))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (96)) + (Prims.of_int (122)) (Prims.of_int (128)) (Prims.of_int (136))))) (Obj.magic - (pp - uu___3 w)) + uu___27) (fun - uu___10 + uu___28 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___29 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___28)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1676,7 +1589,7 @@ let printable_tuple6 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (104)) + (Prims.of_int (122)) (Prims.of_int (128)) (Prims.of_int (136))))) (FStar_Sealed.seal @@ -1684,11 +1597,23 @@ let printable_tuple6 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (96)) + (Prims.of_int (114)) (Prims.of_int (128)) (Prims.of_int (136))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + FStar_Pprint.op_Hat_Hat + uu___25 + uu___27)))) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1706,168 +1631,218 @@ let printable_tuple6 : (Prims.of_int (128)) (Prims.of_int (136))))) (Obj.magic + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___24)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (114)) + (Prims.of_int (104)) (Prims.of_int (128)) - (Prims.of_int (118))))) + (Prims.of_int (136))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (114)) + (Prims.of_int (96)) (Prims.of_int (128)) (Prims.of_int (136))))) (Obj.magic - (pp - uu___4 v)) + uu___22) (fun - uu___11 + uu___23 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___24 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + FStar_Pprint.op_Hat_Hat + uu___21 + uu___23)))) + uu___21) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (122)) + (Prims.of_int (96)) (Prims.of_int (128)) (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (114)) + (Prims.of_int (86)) (Prims.of_int (128)) (Prims.of_int (136))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Obj.magic + uu___19) + (fun uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___21 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___20)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (132)) + (Prims.of_int (86)) (Prims.of_int (128)) (Prims.of_int (136))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (128)) - (Prims.of_int (122)) + (Prims.of_int (78)) (Prims.of_int (128)) (Prims.of_int (136))))) - (Obj.magic - (pp - uu___5 u)) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___12)))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - FStar_Pprint.op_Hat_Hat - uu___11 - uu___12)))) - uu___11))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___11)))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - FStar_Pprint.op_Hat_Hat - uu___10 - uu___11)))) - uu___10))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___10)))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - FStar_Pprint.op_Hat_Hat - uu___9 - uu___10)))) - uu___9))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___9)))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___18) + (fun uu___19 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___20 -> FStar_Pprint.op_Hat_Hat - uu___8 - uu___9)))) - uu___8))) - (fun uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___8)))) - (fun uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> - FStar_Pprint.op_Hat_Hat - uu___7 uu___8)))) - uu___7))) - (fun uu___7 -> + uu___17 + uu___19)))) + uu___17) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (78)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (68)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (Obj.magic uu___15) + (fun uu___16 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___17 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___16)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (68)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (60)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + FStar_Pprint.op_Hat_Hat + uu___13 uu___15)))) + uu___13) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (60)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (50)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___12)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (50)) + (Prims.of_int (128)) + (Prims.of_int (136))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (128)) + (Prims.of_int (41)) + (Prims.of_int (128)) + (Prims.of_int (137))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_Pprint.op_Hat_Hat + uu___9 uu___11)))) uu___9) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (128)) (Prims.of_int (41)) + (Prims.of_int (128)) (Prims.of_int (137))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (128)) (Prims.of_int (34)) + (Prims.of_int (128)) (Prims.of_int (137))))) + (Obj.magic uu___7) + (fun uu___8 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> FStar_Pprint.parens uu___7))) + (fun uu___9 -> FStar_Pprint.parens uu___8))) } let printable_tuple7 : 'a 'b 'c 'd 'e 'f 'g . @@ -1891,224 +1866,205 @@ let printable_tuple7 : (fun uu___7 -> match uu___7 with | (x, y, z, w, v, u, t) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (44)) - (Prims.of_int (133)) - (Prims.of_int (158))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (37)) - (Prims.of_int (133)) - (Prims.of_int (158))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (45)) - (Prims.of_int (133)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (44)) - (Prims.of_int (133)) - (Prims.of_int (158))))) - (Obj.magic (pp uu___ x)) - (fun uu___8 -> - (fun uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (53)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (44)) - (Prims.of_int (133)) - (Prims.of_int (158))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (63)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (53)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (63)) - (Prims.of_int (133)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (63)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (Obj.magic - (pp uu___1 y)) - (fun uu___9 -> - (fun uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (71)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (63)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (81)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (71)) - (Prims.of_int (133)) - (Prims.of_int (157))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + let uu___8 = + let uu___9 = pp uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (45)) + (Prims.of_int (133)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (44)) + (Prims.of_int (133)) + (Prims.of_int (158))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + let uu___13 = pp uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (63)) + (Prims.of_int (133)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (63)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (Obj.magic uu___13) + (fun uu___14 -> + (fun uu___14 -> + let uu___15 = + let uu___16 = + let uu___17 = + pp uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (81)) + (Prims.of_int (133)) + (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (81)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (Obj.magic uu___17) + (fun uu___18 -> + (fun uu___18 -> + let uu___19 = + let uu___20 = + let uu___21 + = + pp uu___3 + w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (81)) + (Prims.of_int (99)) (Prims.of_int (133)) - (Prims.of_int (85))))) - (FStar_Sealed.seal + (Prims.of_int (103))))) + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (81)) + (Prims.of_int (99)) (Prims.of_int (133)) (Prims.of_int (157))))) - (Obj.magic - (pp - uu___2 z)) - (fun - uu___10 + (Obj.magic + uu___21) + (fun + uu___22 -> (fun - uu___10 + uu___22 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___23 + = + let uu___24 + = + let uu___25 + = + pp uu___4 + v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (89)) + (Prims.of_int (117)) (Prims.of_int (133)) - (Prims.of_int (157))))) + (Prims.of_int (121))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (81)) + (Prims.of_int (117)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + (fun + uu___26 + -> + let uu___27 + = + let uu___28 + = + let uu___29 + = + pp uu___5 + u in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (99)) + (Prims.of_int (135)) (Prims.of_int (133)) - (Prims.of_int (157))))) + (Prims.of_int (139))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (89)) + (Prims.of_int (135)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___29) + (fun + uu___30 + -> + (fun + uu___30 + -> + let uu___31 + = + let uu___32 + = + pp uu___6 + t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (99)) + (Prims.of_int (153)) (Prims.of_int (133)) - (Prims.of_int (103))))) + (Prims.of_int (157))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (99)) + (Prims.of_int (143)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (pp - uu___3 w)) + uu___32) (fun - uu___11 + uu___33 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___34 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___33)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2116,7 +2072,7 @@ let printable_tuple7 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (107)) + (Prims.of_int (143)) (Prims.of_int (133)) (Prims.of_int (157))))) (FStar_Sealed.seal @@ -2124,54 +2080,51 @@ let printable_tuple7 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (99)) + (Prims.of_int (135)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (117)) - (Prims.of_int (133)) - (Prims.of_int (157))))) + uu___31) + (fun + uu___32 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___33 + -> + FStar_Pprint.op_Hat_Hat + uu___30 + uu___32)))) + uu___30) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (107)) + (Prims.of_int (135)) (Prims.of_int (133)) (Prims.of_int (157))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.PP.fst" - (Prims.of_int (133)) - (Prims.of_int (117)) - (Prims.of_int (133)) - (Prims.of_int (121))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (117)) + (Prims.of_int (125)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (pp - uu___4 v)) + uu___28) (fun - uu___12 + uu___29 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___30 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___29)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2191,13 +2144,25 @@ let printable_tuple7 : (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27) + (fun + uu___28 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___29 + -> + FStar_Pprint.op_Hat_Hat + uu___26 + uu___28)))) + uu___26) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (135)) + (Prims.of_int (117)) (Prims.of_int (133)) (Prims.of_int (157))))) (FStar_Sealed.seal @@ -2205,193 +2170,228 @@ let printable_tuple7 : (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (125)) + (Prims.of_int (107)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic + uu___24) + (fun + uu___25 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___26 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___25)) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (135)) + (Prims.of_int (107)) (Prims.of_int (133)) - (Prims.of_int (139))))) + (Prims.of_int (157))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (135)) + (Prims.of_int (99)) (Prims.of_int (133)) (Prims.of_int (157))))) (Obj.magic - (pp - uu___5 u)) + uu___23) (fun - uu___13 + uu___24 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___25 -> + FStar_Pprint.op_Hat_Hat + uu___22 + uu___24)))) + uu___22) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (143)) + (Prims.of_int (99)) (Prims.of_int (133)) (Prims.of_int (157))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (135)) + (Prims.of_int (89)) (Prims.of_int (133)) (Prims.of_int (157))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (Obj.magic + uu___20) + (fun uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___21)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (153)) + (Prims.of_int (89)) (Prims.of_int (133)) (Prims.of_int (157))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.PP.fst" (Prims.of_int (133)) - (Prims.of_int (143)) + (Prims.of_int (81)) (Prims.of_int (133)) (Prims.of_int (157))))) - (Obj.magic - (pp - uu___6 t)) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___14)))) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - FStar_Pprint.op_Hat_Hat - uu___13 - uu___14)))) - uu___13))) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___13)))) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - FStar_Pprint.op_Hat_Hat - uu___12 - uu___13)))) - uu___12))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___12)))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - FStar_Pprint.op_Hat_Hat - uu___11 - uu___12)))) - uu___11))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___11)))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - FStar_Pprint.op_Hat_Hat - uu___10 - uu___11)))) - uu___10))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___10)))) - (fun - uu___10 + (Obj.magic + uu___19) + (fun + uu___20 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___21 -> FStar_Pprint.op_Hat_Hat - uu___9 - uu___10)))) - uu___9))) - (fun uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___10 -> - FStar_Pprint.op_Hat_Slash_Hat - FStar_Pprint.comma - uu___9)))) - (fun uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___10 -> - FStar_Pprint.op_Hat_Hat - uu___8 uu___9)))) - uu___8))) - (fun uu___8 -> + uu___18 + uu___20)))) + uu___18) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (81)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (71)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (Obj.magic uu___16) + (fun uu___17 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___18 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma + uu___17)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (71)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (63)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (Obj.magic uu___15) + (fun uu___16 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___17 -> + FStar_Pprint.op_Hat_Hat + uu___14 + uu___16)))) + uu___14) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (63)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (53)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + FStar_Pprint.op_Hat_Slash_Hat + FStar_Pprint.comma uu___13)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (53)) + (Prims.of_int (133)) + (Prims.of_int (157))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (44)) + (Prims.of_int (133)) + (Prims.of_int (158))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + FStar_Pprint.op_Hat_Hat + uu___10 uu___12)))) + uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (44)) + (Prims.of_int (133)) + (Prims.of_int (158))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.PP.fst" + (Prims.of_int (133)) + (Prims.of_int (37)) + (Prims.of_int (133)) + (Prims.of_int (158))))) + (Obj.magic uu___8) + (fun uu___9 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> FStar_Pprint.parens uu___8))) + (fun uu___10 -> FStar_Pprint.parens uu___9))) } \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Recursion.ml b/src/ocaml/plugin/generated/Pulse_Recursion.ml index bc36f7d82..073722ffd 100644 --- a/src/ocaml/plugin/generated/Pulse_Recursion.ml +++ b/src/ocaml/plugin/generated/Pulse_Recursion.ml @@ -20,7 +20,8 @@ let rec splitlast : | x::xs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = splitlast xs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" @@ -31,11 +32,11 @@ let rec splitlast : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (36)) (Prims.of_int (12)) (Prims.of_int (38)) (Prims.of_int (17))))) - (Obj.magic (splitlast xs)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___2 -> + match uu___1 with | (init, last) -> ((x :: init), last)))))) uu___ exception Map2_length_mismatch let (uu___is_Map2_length_mismatch : Prims.exn -> Prims.bool) = @@ -61,7 +62,8 @@ let rec map2 : | (x::xx, y::yy) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f x y in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" @@ -72,9 +74,10 @@ let rec map2 : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (45)) (Prims.of_int (20)) (Prims.of_int (45)) (Prims.of_int (41))))) - (Obj.magic (f x y)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = map2 f xx yy in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -93,11 +96,11 @@ let rec map2 : (Prims.of_int (20)) (Prims.of_int (45)) (Prims.of_int (41))))) - (Obj.magic (map2 f xx yy)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___ :: uu___1)))) - uu___))) + (fun uu___4 -> uu___1 :: uu___3)))) + uu___1))) | uu___ -> Obj.magic (Obj.repr @@ -118,7 +121,8 @@ let (debug_main : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = s () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" @@ -129,11 +133,11 @@ let (debug_main : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (50)) (Prims.of_int (7)) (Prims.of_int (50)) (Prims.of_int (19))))) - (Obj.magic (s ())) - (fun uu___ -> - (fun uu___ -> - Obj.magic (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + Obj.magic (FStar_Tactics_V2_Builtins.print uu___1)) + uu___1))) else Obj.magic (Obj.repr @@ -214,6 +218,10 @@ let (add_knot : fun g -> fun rng -> fun d -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> d.Pulse_Syntax_Base.d)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -224,12 +232,10 @@ let (add_knot : (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (85)) Prims.int_one (Prims.of_int (204)) - (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> d.Pulse_Syntax_Base.d)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (3))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | Pulse_Syntax_Base.FnDefn { Pulse_Syntax_Base.id = id; Pulse_Syntax_Base.isrec = isrec; @@ -238,6 +244,20 @@ let (add_knot : Pulse_Syntax_Base.meas = meas; Pulse_Syntax_Base.body7 = body;_} -> + let uu___2 = + if Prims.uu___is_Nil bs + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g + (FStar_Pervasives_Native.Some + (d.Pulse_Syntax_Base.range2)) + "main: FnDefn does not have binders")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -250,21 +270,14 @@ let (add_knot : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (88)) (Prims.of_int (63)) (Prims.of_int (204)) (Prims.of_int (3))))) - (if Prims.uu___is_Nil bs - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g - (FStar_Pervasives_Native.Some - (d.Pulse_Syntax_Base.range2)) - "main: FnDefn does not have binders")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Pulse_Elaborate_Pure.elab_comp comp)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -283,11 +296,45 @@ let (add_knot : (Prims.of_int (2)) (Prims.of_int (204)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Pulse_Elaborate_Pure.elab_comp comp)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun r_res -> + let uu___5 = + debug_main g + (fun uu___6 -> + let uu___7 = + FStar_Tactics_Util.string_of_list + (fun uu___8 -> + match uu___8 with + | (uu___9, b, + uu___10) -> + Pulse_Syntax_Printer.binder_to_string + b) bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (93)) + (Prims.of_int (14)) + (Prims.of_int (93)) + (Prims.of_int (72))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + Prims.strcat + "add_knot: bs = " + (Prims.strcat + uu___8 "\n")))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -306,50 +353,11 @@ let (add_knot : (Prims.of_int (74)) (Prims.of_int (204)) (Prims.of_int (3))))) - (Obj.magic - (debug_main g - (fun uu___2 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (93)) - (Prims.of_int (14)) - (Prims.of_int (93)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Util.string_of_list - (fun uu___3 - -> - match uu___3 - with - | - (uu___4, - b, - uu___5) - -> - Pulse_Syntax_Printer.binder_to_string - b) bs)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Prims.strcat - "add_knot: bs = " - ( - Prims.strcat - uu___3 - "\n")))))) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + splitlast bs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -368,14 +376,23 @@ let (add_knot : (Prims.of_int (74)) (Prims.of_int (204)) (Prims.of_int (3))))) - (Obj.magic - (splitlast bs)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + match uu___8 with | (bs1, b_knot) -> + let uu___9 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___10 + -> + FStar_List_Tot_Base.map + elab_b + bs1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -394,16 +411,22 @@ let (add_knot : (Prims.of_int (39)) (Prims.of_int (204)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_List_Tot_Base.map - elab_b - bs1)) + (Obj.magic + uu___9) (fun - uu___4 -> + uu___10 + -> (fun r_bs0 -> + let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + freshen_binders + r_bs0)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -422,36 +445,20 @@ let (add_knot : (Prims.of_int (37)) (Prims.of_int (204)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - freshen_binders - r_bs0)) + (Obj.magic + uu___10) (fun - uu___4 -> + uu___11 + -> (fun r_bs -> + let uu___11 + = Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (132)) - (Prims.of_int (4)) - (Prims.of_int (136)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (137)) - (Prims.of_int (4)) - (Prims.of_int (204)) - (Prims.of_int (3))))) (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___12 + -> fun b -> FStar_Reflection_V2_Builtins.pack_namedv { @@ -465,76 +472,88 @@ let (add_knot : FStar_Reflection_V2_Data.ppname = (b.FStar_Tactics_NamedView.ppname) - })) - (fun - uu___4 -> - (fun - binder_to_r_namedv - -> + })) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (138)) - (Prims.of_int (20)) - (Prims.of_int (140)) - (Prims.of_int (59))))) + (Prims.of_int (132)) + (Prims.of_int (4)) + (Prims.of_int (136)) + (Prims.of_int (5))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (140)) - (Prims.of_int (62)) + (Prims.of_int (137)) + (Prims.of_int (4)) (Prims.of_int (204)) (Prims.of_int (3))))) (Obj.magic - (map2 + uu___11) + (fun + uu___12 + -> (fun - uu___5 -> + binder_to_r_namedv + -> + let uu___12 + = + map2 + (fun + uu___14 + -> fun - uu___4 -> + uu___13 + -> (fun b1 -> fun b2 -> Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> FStar_Syntax_Syntax.NT ((binder_to_r_namedv b1), (FStar_Tactics_V2_SyntaxCoercions.binder_to_term b2))))) - uu___5 - uu___4) + uu___14 + uu___13) r_bs0 - r_bs)) - (fun - uu___4 -> - (fun - prime_subst - -> + r_bs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (143)) - (Prims.of_int (4)) - (Prims.of_int (173)) - (Prims.of_int (10))))) + (Prims.of_int (138)) + (Prims.of_int (20)) + (Prims.of_int (140)) + (Prims.of_int (59))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (174)) - (Prims.of_int (4)) + (Prims.of_int (140)) + (Prims.of_int (62)) (Prims.of_int (204)) (Prims.of_int (3))))) - (if + (Obj.magic + uu___12) + (fun + uu___13 + -> + (fun + prime_subst + -> + let uu___13 + = + if (Pulse_Syntax_Base.uu___is_C_STAtomic comp) || (Pulse_Syntax_Base.uu___is_C_STGhost @@ -542,24 +561,9 @@ let (add_knot : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (144)) - (Prims.of_int (6)) - (Prims.of_int (149)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (149)) - (Prims.of_int (8)) - (Prims.of_int (171)) - (Prims.of_int (19))))) - (if + (let uu___14 + = + if FStar_Pervasives_Native.uu___is_None meas then @@ -577,12 +581,37 @@ let (add_knot : (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - ())))) + uu___16 + -> ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (144)) + (Prims.of_int (6)) + (Prims.of_int (149)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (149)) + (Prims.of_int (8)) + (Prims.of_int (171)) + (Prims.of_int (19))))) + (Obj.magic + uu___14) (fun - uu___4 -> + uu___15 + -> (fun - uu___4 -> + uu___15 + -> + let uu___16 + = + splitlast + r_bs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -602,14 +631,15 @@ let (add_knot : (Prims.of_int (171)) (Prims.of_int (19))))) (Obj.magic - (splitlast - r_bs)) + uu___16) (fun - uu___5 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> - match uu___5 + uu___18 + -> + match uu___17 with | (init, @@ -693,18 +723,49 @@ let (add_knot : = (last.FStar_Tactics_NamedView.attrs) }])))) - uu___4))) + uu___15))) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - r_bs)))) + uu___15 + -> r_bs))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (143)) + (Prims.of_int (4)) + (Prims.of_int (173)) + (Prims.of_int (10))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (174)) + (Prims.of_int (4)) + (Prims.of_int (204)) + (Prims.of_int (3))))) + (Obj.magic + uu___13) (fun - uu___4 -> + uu___14 + -> (fun r_bs1 -> + let uu___14 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + FStar_Reflection_V2_Builtins.subst_term + prime_subst + r_res)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -723,16 +784,18 @@ let (add_knot : (Prims.of_int (47)) (Prims.of_int (204)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_Reflection_V2_Builtins.subst_term - prime_subst - r_res)) + (Obj.magic + uu___14) (fun - uu___4 -> + uu___15 + -> (fun r_res1 -> + let uu___15 + = + FStar_Tactics_V2_SyntaxHelpers.mk_tot_arr + r_bs1 + r_res1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -752,13 +815,33 @@ let (add_knot : (Prims.of_int (204)) (Prims.of_int (3))))) (Obj.magic - (FStar_Tactics_V2_SyntaxHelpers.mk_tot_arr - r_bs1 - r_res1)) + uu___15) (fun - uu___4 -> + uu___16 + -> (fun r_ty -> + let uu___16 + = + if + FStar_Reflection_V2_Data.uu___is_Tv_Unknown + (FStar_Reflection_V2_Builtins.inspect_ln + r_ty) + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + (d.Pulse_Syntax_Base.range2)) + "error: r_ty is Tv_unknown in add_knot?")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___18 + -> ()))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -777,30 +860,15 @@ let (add_knot : (Prims.of_int (4)) (Prims.of_int (203)) (Prims.of_int (65))))) - (if - FStar_Reflection_V2_Data.uu___is_Tv_Unknown - (FStar_Reflection_V2_Builtins.inspect_ln - r_ty) - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - (d.Pulse_Syntax_Base.range2)) - "error: r_ty is Tv_unknown in add_knot?")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - ())))) + (Obj.magic + uu___16) (fun - uu___4 -> + uu___17 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___18 + -> { Pulse_Syntax_Base.d = @@ -866,16 +934,16 @@ let (add_knot : = (d.Pulse_Syntax_Base.range2) })))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___4))) - uu___3))) - uu___2))) uu___2))) - uu___1))) uu___) + uu___16))) + uu___15))) + uu___14))) + uu___13))) + uu___12))) + uu___11))) + uu___10))) + uu___8))) + uu___6))) uu___5))) + uu___3))) uu___1) let (tie_knot : Pulse_Typing_Env.env -> FStar_Range.range -> @@ -893,6 +961,127 @@ let (tie_knot : fun nm_aux -> fun r_typ -> fun blob -> + let uu___ = + let uu___1 = + FStar_Tactics_V2_SyntaxHelpers.collect_arr_bs r_typ in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Recursion.fst" + (Prims.of_int (215)) (Prims.of_int (16)) + (Prims.of_int (215)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Recursion.fst" + (Prims.of_int (212)) (Prims.of_int (18)) + (Prims.of_int (219)) (Prims.of_int (15))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with + | (bs, c) -> + let uu___3 = + if Prims.uu___is_Nil bs + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g + (FStar_Pervasives_Native.Some rng) + "tie_knot: impossible (1)")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (216)) + (Prims.of_int (4)) + (Prims.of_int (216)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (216)) + (Prims.of_int (65)) + (Prims.of_int (219)) + (Prims.of_int (15))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_List_Tot_Base.init bs)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (217)) + (Prims.of_int (13)) + (Prims.of_int (217)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (218)) + (Prims.of_int (4)) + (Prims.of_int (219)) + (Prims.of_int (15))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun bs1 -> + let uu___6 = + if Prims.uu___is_Nil bs1 + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail + g + (FStar_Pervasives_Native.Some + rng) + "tie_knot: impossible (2)")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + ()))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (218)) + (Prims.of_int (4)) + (Prims.of_int (218)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Recursion.fst" + (Prims.of_int (219)) + (Prims.of_int (4)) + (Prims.of_int (219)) + (Prims.of_int (15))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + Obj.magic + (FStar_Tactics_V2_SyntaxHelpers.mk_arr + bs1 c)) + uu___7))) uu___6))) + uu___4))) uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -904,127 +1093,40 @@ let (tie_knot : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (220)) (Prims.of_int (4)) (Prims.of_int (226)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (215)) (Prims.of_int (16)) - (Prims.of_int (215)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Recursion.fst" - (Prims.of_int (212)) (Prims.of_int (18)) - (Prims.of_int (219)) (Prims.of_int (15))))) - (Obj.magic - (FStar_Tactics_V2_SyntaxHelpers.collect_arr_bs r_typ)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (bs, c) -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (216)) - (Prims.of_int (4)) - (Prims.of_int (216)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (216)) - (Prims.of_int (65)) - (Prims.of_int (219)) - (Prims.of_int (15))))) - (if Prims.uu___is_Nil bs - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g - (FStar_Pervasives_Native.Some - rng) - "tie_knot: impossible (1)")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> ())))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (217)) - (Prims.of_int (13)) - (Prims.of_int (217)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (218)) - (Prims.of_int (4)) - (Prims.of_int (219)) - (Prims.of_int (15))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_List_Tot_Base.init - bs)) - (fun uu___2 -> - (fun bs1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (218)) - (Prims.of_int (4)) - (Prims.of_int (218)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (219)) - (Prims.of_int (4)) - (Prims.of_int (219)) - (Prims.of_int (15))))) - (if - Prims.uu___is_Nil - bs1 - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail - g - (FStar_Pervasives_Native.Some - rng) - "tie_knot: impossible (2)")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - ())))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_V2_SyntaxHelpers.mk_arr - bs1 c)) - uu___2))) - uu___2))) uu___1))) - uu___))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun knot_r_typ -> + let uu___1 = + let uu___2 = FStar_Tactics_V2_Derived.cur_module () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Recursion.fst" + (Prims.of_int (223)) (Prims.of_int (55)) + (Prims.of_int (223)) (Prims.of_int (72))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Recursion.fst" + (Prims.of_int (223)) (Prims.of_int (21)) + (Prims.of_int (223)) (Prims.of_int (104))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Reflection_Typing.mk_unchecked_let + (Pulse_Typing_Env.fstar_env g) uu___3 + nm_orig + (FStar_Reflection_V2_Builtins.pack_ln + (FStar_Reflection_V2_Data.Tv_App + ((FStar_Reflection_V2_Builtins.pack_ln + (FStar_Reflection_V2_Data.Tv_FVar + (FStar_Reflection_V2_Builtins.pack_fv + ["Prims"; "magic"]))), + ((FStar_Reflection_V2_Builtins.pack_ln + (FStar_Reflection_V2_Data.Tv_Const + FStar_Reflection_V2_Data.C_Unit)), + FStar_Reflection_V2_Data.Q_Explicit)))) + knot_r_typ)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1037,48 +1139,12 @@ let (tie_knot : (FStar_Range.mk_range "Pulse.Recursion.fst" (Prims.of_int (220)) (Prims.of_int (4)) (Prims.of_int (226)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (223)) - (Prims.of_int (55)) - (Prims.of_int (223)) - (Prims.of_int (72))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Recursion.fst" - (Prims.of_int (223)) - (Prims.of_int (21)) - (Prims.of_int (223)) - (Prims.of_int (104))))) - (Obj.magic - (FStar_Tactics_V2_Derived.cur_module ())) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Reflection_Typing.mk_unchecked_let - (Pulse_Typing_Env.fstar_env g) - uu___ nm_orig - (FStar_Reflection_V2_Builtins.pack_ln - (FStar_Reflection_V2_Data.Tv_App - ((FStar_Reflection_V2_Builtins.pack_ln - (FStar_Reflection_V2_Data.Tv_FVar - (FStar_Reflection_V2_Builtins.pack_fv - ["Prims"; "magic"]))), - ((FStar_Reflection_V2_Builtins.pack_ln - (FStar_Reflection_V2_Data.Tv_Const - FStar_Reflection_V2_Data.C_Unit)), - FStar_Reflection_V2_Data.Q_Explicit)))) - knot_r_typ)))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (flag, sig1, uu___2) -> + (fun uu___3 -> + match uu___2 with + | (flag, sig1, uu___4) -> (flag, (Pulse_RuntimeUtils.add_attribute sig1 @@ -1101,4 +1167,4 @@ let (tie_knot : ((string_as_term nm_aux), FStar_Reflection_V2_Data.Q_Explicit))))), (FStar_Pervasives_Native.Some blob)))))) - uu___) \ No newline at end of file + uu___1) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Show.ml b/src/ocaml/plugin/generated/Pulse_Show.ml index d2969260a..929ee4dce 100644 --- a/src/ocaml/plugin/generated/Pulse_Show.ml +++ b/src/ocaml/plugin/generated/Pulse_Show.ml @@ -62,7 +62,8 @@ let tac_showable_option : | FStar_Pervasives_Native.Some v -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = show tac_showable_a v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" @@ -73,10 +74,10 @@ let tac_showable_option : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (show tac_showable_a v)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat "Some " uu___1))))) + (fun uu___3 -> Prims.strcat "Some " uu___2))))) uu___) } let tac_showable_list : 'a . 'a tac_showable -> 'a Prims.list tac_showable = @@ -125,166 +126,115 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = { show = (fun h -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (79)) - (Prims.of_int (6)) (Prims.of_int (84)) (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) - (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (79)) (Prims.of_int (15)) - (Prims.of_int (84)) (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) - (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (79)) (Prims.of_int (15)) - (Prims.of_int (79)) (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (79)) (Prims.of_int (15)) - (Prims.of_int (84)) (Prims.of_int (7))))) - (Obj.magic (show tac_showable_env h.Pulse_Typing.g)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (79)) - (Prims.of_int (26)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (80)) - (Prims.of_int (6)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (80)) - (Prims.of_int (26)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + let uu___ = + let uu___1 = + let uu___2 = show tac_showable_env h.Pulse_Typing.g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (79)) (Prims.of_int (15)) + (Prims.of_int (79)) (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (79)) (Prims.of_int (15)) + (Prims.of_int (84)) (Prims.of_int (7))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + show tac_showable_effect_annot + h.Pulse_Typing.effect_annot in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (80)) (Prims.of_int (26)) + (Prims.of_int (80)) (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (80)) (Prims.of_int (26)) + (Prims.of_int (84)) (Prims.of_int (7))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + let uu___11 = + let uu___12 = + show tac_showable_term + h.Pulse_Typing.ret_ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (80)) - (Prims.of_int (26)) - (Prims.of_int (80)) - (Prims.of_int (45))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (80)) - (Prims.of_int (26)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (Obj.magic - (show - tac_showable_effect_annot - h.Pulse_Typing.effect_annot)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (80)) - (Prims.of_int (48)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (81)) - (Prims.of_int (6)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (81)) + (Prims.of_int (20)) + (Prims.of_int (81)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (81)) + (Prims.of_int (20)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (Obj.magic uu___12) + (fun uu___13 -> + (fun uu___13 -> + let uu___14 = + let uu___15 = + let uu___16 = + let uu___17 = + show + tac_showable_universe + h.Pulse_Typing.u in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (82)) + (Prims.of_int (15)) + (Prims.of_int (82)) + (Prims.of_int (23))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (82)) + (Prims.of_int (15)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (Obj.magic uu___17) + (fun uu___18 -> + (fun uu___18 -> + let uu___19 = + let uu___20 + = + let uu___21 + = + let uu___22 + = + show + tac_showable_term + h.Pulse_Typing.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (81)) - (Prims.of_int (20)) - (Prims.of_int (84)) - (Prims.of_int (7))))) + (Prims.of_int (83)) + (Prims.of_int (18)) + (Prims.of_int (83)) + (Prims.of_int (29))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -294,75 +244,24 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (81)) - (Prims.of_int (20)) - (Prims.of_int (81)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (81)) - (Prims.of_int (20)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (Obj.magic - (show - tac_showable_term - h.Pulse_Typing.ret_ty)) + uu___22) (fun - uu___2 -> + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (81)) - (Prims.of_int (36)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (82)) - (Prims.of_int (6)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___24 + -> + Prims.strcat + uu___23 + "; }")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (82)) - (Prims.of_int (15)) + (Prims.of_int (83)) + (Prims.of_int (18)) (Prims.of_int (84)) (Prims.of_int (7))))) (FStar_Sealed.seal @@ -374,52 +273,19 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (82)) - (Prims.of_int (15)) - (Prims.of_int (82)) - (Prims.of_int (23))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (82)) - (Prims.of_int (15)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (Obj.magic - (show - tac_showable_universe - h.Pulse_Typing.u)) + uu___21) (fun - uu___3 -> + uu___22 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (82)) - (Prims.of_int (26)) - (Prims.of_int (84)) - (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + uu___23 + -> + Prims.strcat + "post = " + uu___22)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" @@ -427,7 +293,7 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = (Prims.of_int (6)) (Prims.of_int (84)) (Prims.of_int (7))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" @@ -435,35 +301,31 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (Obj.magic + uu___20) + (fun + uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + Prims.strcat + "; " + uu___21)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + ( + FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (83)) - (Prims.of_int (18)) + (Prims.of_int (82)) + (Prims.of_int (26)) (Prims.of_int (84)) (Prims.of_int (7))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (83)) - (Prims.of_int (18)) - (Prims.of_int (83)) - (Prims.of_int (29))))) - (FStar_Sealed.seal + ( + FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" @@ -471,113 +333,238 @@ let (tac_showable_post_hint_t : Pulse_Typing.post_hint_t tac_showable) = (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (show - tac_showable_term - h.Pulse_Typing.post)) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Prims.strcat - uu___4 - "; }")))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Prims.strcat - "post = " - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Prims.strcat - "; " - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Prims.strcat - uu___3 - uu___4)))) - uu___3))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - "u = " - uu___3)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - "; " - uu___3)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - uu___2 - uu___3)))) - uu___2))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Prims.strcat - "ret_ty = " - uu___2)))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - Prims.strcat - "; " - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac + ( + Obj.magic + uu___19) ( fun - uu___3 -> + uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___21 + -> Prims.strcat - uu___1 - uu___2)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - "effect_annot = " - uu___1)))) - (fun uu___1 -> + uu___18 + uu___20)))) + uu___18) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (82)) + (Prims.of_int (15)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___16) + (fun uu___17 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___18 -> + Prims.strcat + "u = " + uu___17)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (82)) + (Prims.of_int (6)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___15) + (fun uu___16 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___17 -> + Prims.strcat + "; " uu___16)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (81)) + (Prims.of_int (36)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + Prims.strcat + uu___13 + uu___15)))) + uu___13) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (81)) + (Prims.of_int (20)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + Prims.strcat "ret_ty = " + uu___12)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (81)) + (Prims.of_int (6)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + Prims.strcat "; " uu___11)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (80)) + (Prims.of_int (48)) + (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___9) + (fun uu___10 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "; " uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat uu___ uu___1)))) uu___))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.strcat "g = " uu___)))) - (fun uu___ -> + (fun uu___11 -> + Prims.strcat uu___8 uu___10)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (80)) (Prims.of_int (26)) + (Prims.of_int (84)) (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Prims.strcat "effect_annot = " uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (80)) (Prims.of_int (6)) + (Prims.of_int (84)) (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> Prims.strcat "; " uu___6)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (79)) (Prims.of_int (26)) + (Prims.of_int (84)) (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> Prims.strcat uu___3 uu___5)))) + uu___3) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (79)) + (Prims.of_int (15)) (Prims.of_int (84)) + (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> Prims.strcat "g = " uu___2)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (79)) + (Prims.of_int (6)) (Prims.of_int (84)) (Prims.of_int (7))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.strcat "{" uu___))) + (fun uu___2 -> Prims.strcat "{" uu___1))) } let (tac_showable_r_term : FStar_Reflection_Types.term tac_showable) = { show = FStar_Tactics_V1_Builtins.term_to_string } @@ -592,6 +579,84 @@ let tac_showable_tuple2 : (fun uu___2 -> match uu___2 with | (x, y) -> + let uu___3 = + let uu___4 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (96)) (Prims.of_int (30)) + (Prims.of_int (96)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (96)) (Prims.of_int (30)) + (Prims.of_int (96)) (Prims.of_int (58))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + let uu___8 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (96)) + (Prims.of_int (46)) + (Prims.of_int (96)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> Prims.strcat uu___9 ")")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (96)) + (Prims.of_int (46)) + (Prims.of_int (96)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> Prims.strcat ", " uu___8)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (96)) + (Prims.of_int (39)) + (Prims.of_int (96)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + Prims.strcat uu___5 uu___7)))) uu___5) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -603,92 +668,10 @@ let tac_showable_tuple2 : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (96)) (Prims.of_int (30)) - (Prims.of_int (96)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (96)) (Prims.of_int (30)) - (Prims.of_int (96)) (Prims.of_int (58))))) - (Obj.magic (show uu___ x)) - (fun uu___3 -> - (fun uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (96)) - (Prims.of_int (39)) - (Prims.of_int (96)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (96)) - (Prims.of_int (46)) - (Prims.of_int (96)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (96)) - (Prims.of_int (46)) - (Prims.of_int (96)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic (show uu___1 y)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - Prims.strcat uu___4 - ")")))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - Prims.strcat ", " uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - Prims.strcat uu___3 uu___4)))) - uu___3))) - (fun uu___3 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> Prims.strcat "(" uu___3))) + (fun uu___5 -> Prims.strcat "(" uu___4))) } let tac_showable_tuple3 : 'a 'b 'c . @@ -703,6 +686,161 @@ let tac_showable_tuple3 : (fun uu___3 -> match uu___3 with | (x, y, z) -> + let uu___4 = + let uu___5 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (100)) (Prims.of_int (33)) + (Prims.of_int (100)) (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (100)) (Prims.of_int (33)) + (Prims.of_int (100)) (Prims.of_int (77))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + let uu___9 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (49)) + (Prims.of_int (100)) + (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (49)) + (Prims.of_int (100)) + (Prims.of_int (77))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + let uu___13 = show uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (65)) + (Prims.of_int (100)) + (Prims.of_int (71))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + Prims.strcat uu___14 + ")")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (65)) + (Prims.of_int (100)) + (Prims.of_int (77))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + Prims.strcat ", " + uu___13)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (58)) + (Prims.of_int (100)) + (Prims.of_int (77))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + Prims.strcat uu___10 + uu___12)))) uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (49)) + (Prims.of_int (100)) + (Prims.of_int (77))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + Prims.strcat ", " uu___9)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (100)) + (Prims.of_int (42)) + (Prims.of_int (100)) + (Prims.of_int (77))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + Prims.strcat uu___6 uu___8)))) + uu___6) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -714,170 +852,10 @@ let tac_showable_tuple3 : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (100)) (Prims.of_int (33)) - (Prims.of_int (100)) (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (100)) (Prims.of_int (33)) - (Prims.of_int (100)) (Prims.of_int (77))))) - (Obj.magic (show uu___ x)) - (fun uu___4 -> - (fun uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (42)) - (Prims.of_int (100)) - (Prims.of_int (77))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (49)) - (Prims.of_int (100)) - (Prims.of_int (77))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (49)) - (Prims.of_int (100)) - (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (49)) - (Prims.of_int (100)) - (Prims.of_int (77))))) - (Obj.magic (show uu___1 y)) - (fun uu___5 -> - (fun uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (58)) - (Prims.of_int (100)) - (Prims.of_int (77))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (65)) - (Prims.of_int (100)) - (Prims.of_int (77))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (100)) - (Prims.of_int (65)) - (Prims.of_int (100)) - (Prims.of_int (71))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (show - uu___2 z)) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Prims.strcat - uu___6 - ")")))) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Prims.strcat - ", " - uu___6)))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 - -> - Prims.strcat - uu___5 - uu___6)))) - uu___5))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - Prims.strcat ", " uu___5)))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - Prims.strcat uu___4 uu___5)))) - uu___4))) - (fun uu___4 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> Prims.strcat "(" uu___4))) + (fun uu___6 -> Prims.strcat "(" uu___5))) } let tac_showable_tuple4 : 'a 'b 'c 'd . @@ -895,267 +873,258 @@ let tac_showable_tuple4 : (fun uu___4 -> match uu___4 with | (x, y, z, w) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (104)) (Prims.of_int (36)) - (Prims.of_int (104)) (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (36)) - (Prims.of_int (104)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (36)) - (Prims.of_int (104)) - (Prims.of_int (96))))) - (Obj.magic (show uu___ x)) - (fun uu___5 -> - (fun uu___5 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (45)) - (Prims.of_int (104)) - (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + let uu___5 = + let uu___6 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (104)) (Prims.of_int (36)) + (Prims.of_int (104)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (104)) (Prims.of_int (36)) + (Prims.of_int (104)) (Prims.of_int (96))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + let uu___10 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (52)) - (Prims.of_int (104)) - (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (52)) - (Prims.of_int (104)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (52)) - (Prims.of_int (104)) - (Prims.of_int (96))))) + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (52)) + (Prims.of_int (104)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (52)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (Obj.magic uu___10) + (fun uu___11 -> + (fun uu___11 -> + let uu___12 = + let uu___13 = + let uu___14 = show uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (show uu___1 y)) - (fun uu___6 -> - (fun uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (68)) + (Prims.of_int (104)) + (Prims.of_int (74))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (68)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (Obj.magic uu___14) + (fun uu___15 -> + (fun uu___15 -> + let uu___16 = + let uu___17 = + let uu___18 = + show uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (104)) - (Prims.of_int (61)) + (Prims.of_int (84)) (Prims.of_int (104)) - (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Obj.magic + uu___18) + (fun uu___19 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 + -> + Prims.strcat + uu___19 + ")")) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (104)) - (Prims.of_int (68)) + (Prims.of_int (84)) (Prims.of_int (104)) (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (68)) - (Prims.of_int (104)) - (Prims.of_int (74))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (68)) - (Prims.of_int (104)) - (Prims.of_int (96))))) - (Obj.magic - (show - uu___2 z)) - (fun - uu___7 -> - (fun - uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (Obj.magic uu___17) + (fun uu___18 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___19 + -> + Prims.strcat + ", " + uu___18)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (104)) (Prims.of_int (77)) (Prims.of_int (104)) (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (84)) - (Prims.of_int (104)) - (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (104)) - (Prims.of_int (84)) - (Prims.of_int (104)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (show - uu___3 w)) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Prims.strcat - uu___8 - ")")))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Prims.strcat - ", " - uu___8)))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Prims.strcat - uu___7 - uu___8)))) - uu___7))) - (fun - uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - Prims.strcat - ", " - uu___7)))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___8 -> + (Obj.magic + uu___16) + (fun uu___17 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___18 + -> Prims.strcat - uu___6 - uu___7)))) - uu___6))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> - Prims.strcat ", " - uu___6)))) - (fun uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> - Prims.strcat uu___5 uu___6)))) - uu___5))) - (fun uu___5 -> + uu___15 + uu___17)))) + uu___15) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (68)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + Prims.strcat ", " + uu___14)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (61)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + Prims.strcat uu___11 + uu___13)))) uu___11) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (52)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Prims.strcat ", " uu___10)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (104)) + (Prims.of_int (45)) + (Prims.of_int (104)) + (Prims.of_int (96))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + Prims.strcat uu___7 uu___9)))) + uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (104)) (Prims.of_int (36)) + (Prims.of_int (104)) (Prims.of_int (96))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> Prims.strcat "(" uu___5))) + (fun uu___7 -> Prims.strcat "(" uu___6))) } let tac_showable_tuple5 : 'a 'b 'c 'd 'e . @@ -1175,239 +1144,105 @@ let tac_showable_tuple5 : (fun uu___5 -> match uu___5 with | (x, y, z, w, v) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (108)) (Prims.of_int (39)) - (Prims.of_int (108)) (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (39)) - (Prims.of_int (108)) - (Prims.of_int (45))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (39)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (Obj.magic (show uu___ x)) - (fun uu___6 -> - (fun uu___6 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (48)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + let uu___6 = + let uu___7 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (108)) (Prims.of_int (39)) + (Prims.of_int (108)) (Prims.of_int (45))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (108)) (Prims.of_int (39)) + (Prims.of_int (108)) (Prims.of_int (115))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + let uu___11 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (55)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (55)) - (Prims.of_int (108)) - (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (55)) - (Prims.of_int (108)) - (Prims.of_int (115))))) + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (55)) + (Prims.of_int (108)) + (Prims.of_int (61))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (55)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (Obj.magic uu___11) + (fun uu___12 -> + (fun uu___12 -> + let uu___13 = + let uu___14 = + let uu___15 = show uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (show uu___1 y)) - (fun uu___7 -> - (fun uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (64)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - ( - Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - ( - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (71)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (71)) - (Prims.of_int (108)) - (Prims.of_int (77))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (71)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (Obj.magic - (show - uu___2 z)) - (fun - uu___8 -> - (fun - uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (80)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (87)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (71)) + (Prims.of_int (108)) + (Prims.of_int (77))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (71)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (Obj.magic uu___15) + (fun uu___16 -> + (fun uu___16 -> + let uu___17 = + let uu___18 = + let uu___19 = + show uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (108)) (Prims.of_int (87)) (Prims.of_int (108)) (Prims.of_int (93))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (108)) (Prims.of_int (87)) (Prims.of_int (108)) (Prims.of_int (115))))) - (Obj.magic - (show - uu___3 w)) - (fun - uu___9 -> - (fun - uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (108)) - (Prims.of_int (96)) - (Prims.of_int (108)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___19) + (fun uu___20 + -> + (fun + uu___20 + -> + let uu___21 + = + let uu___22 + = + let uu___23 + = + show + uu___4 v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1415,7 +1250,7 @@ let tac_showable_tuple5 : (Prims.of_int (108)) (Prims.of_int (103)) (Prims.of_int (108)) - (Prims.of_int (115))))) + (Prims.of_int (109))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1425,7 +1260,18 @@ let tac_showable_tuple5 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + Prims.strcat + uu___24 + ")")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1433,7 +1279,7 @@ let tac_showable_tuple5 : (Prims.of_int (108)) (Prims.of_int (103)) (Prims.of_int (108)) - (Prims.of_int (109))))) + (Prims.of_int (115))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1443,88 +1289,213 @@ let tac_showable_tuple5 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (show - uu___4 v)) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - Prims.strcat - uu___10 - ")")))) + uu___22) (fun - uu___10 + uu___23 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___24 -> Prims.strcat ", " - uu___10)))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac + uu___23)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (96)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic + uu___21) (fun - uu___11 + uu___22 -> - Prims.strcat - uu___9 - uu___10)))) - uu___9))) - (fun - uu___9 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___23 -> Prims.strcat - ", " - uu___9)))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 + uu___20 + uu___22)))) + uu___20) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (87)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic + uu___18) + (fun uu___19 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 -> Prims.strcat - uu___8 - uu___9)))) - uu___8))) - (fun - uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> - Prims.strcat ", " - uu___8)))) - (fun uu___8 + uu___19)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (80)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + ( + FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic + uu___17) + (fun uu___18 -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___19 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___9 -> Prims.strcat - uu___7 - uu___8)))) - uu___7))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> - Prims.strcat ", " - uu___7)))) - (fun uu___7 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> - Prims.strcat uu___6 uu___7)))) - uu___6))) - (fun uu___6 -> + uu___16 + uu___18)))) + uu___16) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (71)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + Prims.strcat ", " + uu___15)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (64)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + Prims.strcat + uu___12 uu___14)))) + uu___12) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (55)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + Prims.strcat ", " uu___11)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (108)) + (Prims.of_int (48)) + (Prims.of_int (108)) + (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Prims.strcat uu___8 uu___10)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (108)) (Prims.of_int (39)) + (Prims.of_int (108)) (Prims.of_int (115))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___7 -> Prims.strcat "(" uu___6))) + (fun uu___8 -> Prims.strcat "(" uu___7))) } let tac_showable_tuple6 : 'a 'b 'c 'd 'e 'f . @@ -1546,165 +1517,154 @@ let tac_showable_tuple6 : (fun uu___6 -> match uu___6 with | (x, y, z, w, v, u) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (112)) (Prims.of_int (42)) - (Prims.of_int (112)) (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (42)) - (Prims.of_int (112)) - (Prims.of_int (48))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (42)) - (Prims.of_int (112)) - (Prims.of_int (134))))) - (Obj.magic (show uu___ x)) - (fun uu___7 -> - (fun uu___7 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (51)) - (Prims.of_int (112)) - (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + let uu___7 = + let uu___8 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (42)) + (Prims.of_int (112)) + (Prims.of_int (48))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (42)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (Obj.magic uu___8) + (fun uu___9 -> + (fun uu___9 -> + let uu___10 = + let uu___11 = + let uu___12 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (58)) - (Prims.of_int (112)) - (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (58)) - (Prims.of_int (112)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (58)) - (Prims.of_int (112)) - (Prims.of_int (134))))) + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (58)) + (Prims.of_int (112)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (58)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (Obj.magic uu___12) + (fun uu___13 -> + (fun uu___13 -> + let uu___14 = + let uu___15 = + let uu___16 = + show uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (show uu___1 y)) - (fun uu___8 -> - (fun uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (74)) + (Prims.of_int (112)) + (Prims.of_int (80))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (74)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (Obj.magic uu___16) + (fun uu___17 -> + (fun uu___17 -> + let uu___18 = + let uu___19 = + let uu___20 = + show uu___3 + w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (67)) + (Prims.of_int (90)) (Prims.of_int (112)) - (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (96))))) + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (74)) + (Prims.of_int (90)) (Prims.of_int (112)) (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___20) + (fun uu___21 + -> + (fun + uu___21 + -> + let uu___22 + = + let uu___23 + = + let uu___24 + = + show + uu___4 v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (74)) + (Prims.of_int (106)) (Prims.of_int (112)) - (Prims.of_int (80))))) + (Prims.of_int (112))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (74)) + (Prims.of_int (106)) (Prims.of_int (112)) (Prims.of_int (134))))) (Obj.magic - (show - uu___2 z)) + uu___24) (fun - uu___9 -> + uu___25 + -> (fun - uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25 + -> + let uu___26 + = + let uu___27 + = + let uu___28 + = + show + uu___5 u in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (83)) + (Prims.of_int (122)) (Prims.of_int (112)) - (Prims.of_int (134))))) + (Prims.of_int (128))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1714,13 +1674,24 @@ let tac_showable_tuple6 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___28) + (fun + uu___29 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___30 + -> + Prims.strcat + uu___29 + ")")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (90)) + (Prims.of_int (122)) (Prims.of_int (112)) (Prims.of_int (134))))) (FStar_Sealed.seal @@ -1732,32 +1703,17 @@ let tac_showable_tuple6 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (90)) - (Prims.of_int (112)) - (Prims.of_int (96))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (90)) - (Prims.of_int (112)) - (Prims.of_int (134))))) - (Obj.magic - (show - uu___3 w)) + uu___27) (fun - uu___10 + uu___28 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___29 -> + Prims.strcat + ", " + uu___28)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1765,7 +1721,7 @@ let tac_showable_tuple6 : (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (99)) + (Prims.of_int (115)) (Prims.of_int (112)) (Prims.of_int (134))))) (FStar_Sealed.seal @@ -1777,7 +1733,19 @@ let tac_showable_tuple6 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___26) + (fun + uu___27 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___28 + -> + Prims.strcat + uu___25 + uu___27)))) + uu___25) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1790,37 +1758,22 @@ let tac_showable_tuple6 : (Obj.magic (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (106)) - (Prims.of_int (112)) - (Prims.of_int (112))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (112)) - (Prims.of_int (106)) - (Prims.of_int (112)) - (Prims.of_int (134))))) + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic - (show - uu___4 v)) + uu___23) (fun - uu___11 + uu___24 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___25 -> + Prims.strcat + ", " + uu___24)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1828,7 +1781,7 @@ let tac_showable_tuple6 : (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (115)) + (Prims.of_int (99)) (Prims.of_int (112)) (Prims.of_int (134))))) (FStar_Sealed.seal @@ -1840,149 +1793,186 @@ let tac_showable_tuple6 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + uu___22) + (fun + uu___23 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___24 + -> + Prims.strcat + uu___21 + uu___23)))) + uu___21) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (122)) + (Prims.of_int (90)) (Prims.of_int (112)) (Prims.of_int (134))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Obj.magic + uu___19) + (fun uu___20 + -> + FStar_Tactics_Effect.lift_div_tac + ( + fun + uu___21 + -> + Prims.strcat + ", " + uu___20)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (112)) - (Prims.of_int (122)) + (Prims.of_int (83)) (Prims.of_int (112)) - (Prims.of_int (128))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (show - uu___5 u)) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Prims.strcat - uu___12 - ")")))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Prims.strcat - ", " - uu___12)))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Prims.strcat - uu___11 - uu___12)))) - uu___11))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Prims.strcat - ", " - uu___11)))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Prims.strcat - uu___10 - uu___11)))) - uu___10))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - Prims.strcat - ", " - uu___10)))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - Prims.strcat - uu___9 - uu___10)))) - uu___9))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___10 - -> - Prims.strcat - ", " - uu___9)))) - (fun - uu___9 -> - FStar_Tactics_Effect.lift_div_tac + (Obj.magic + uu___18) + (fun uu___19 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___10 + uu___20 -> Prims.strcat - uu___8 - uu___9)))) - uu___8))) - (fun uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> - Prims.strcat ", " - uu___8)))) - (fun uu___8 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> - Prims.strcat uu___7 - uu___8)))) uu___7))) - (fun uu___7 -> + uu___17 + uu___19)))) + uu___17) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (74)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___15) + (fun uu___16 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___17 -> + Prims.strcat ", " + uu___16)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (67)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + Prims.strcat + uu___13 uu___15)))) + uu___13) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (58)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + Prims.strcat ", " uu___12)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (112)) + (Prims.of_int (51)) + (Prims.of_int (112)) + (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + Prims.strcat uu___9 uu___11)))) + uu___9) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (112)) (Prims.of_int (42)) + (Prims.of_int (112)) (Prims.of_int (134))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___7) + (fun uu___8 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___8 -> Prims.strcat "(" uu___7))) + (fun uu___9 -> Prims.strcat "(" uu___8))) } let tac_showable_tuple7 : 'a 'b 'c 'd 'e 'f 'g . @@ -2007,173 +1997,187 @@ let tac_showable_tuple7 : (fun uu___7 -> match uu___7 with | (x, y, z, w, v, u, t) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (45)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (45)) - (Prims.of_int (116)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (45)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (Obj.magic (show uu___ x)) - (fun uu___8 -> - (fun uu___8 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (54)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + let uu___8 = + let uu___9 = show uu___ x in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (45)) + (Prims.of_int (116)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (45)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + let uu___13 = show uu___1 y in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (61)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (61)) - (Prims.of_int (116)) - (Prims.of_int (67))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (61)) - (Prims.of_int (116)) - (Prims.of_int (153))))) + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (61)) + (Prims.of_int (116)) + (Prims.of_int (67))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (61)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (Obj.magic uu___13) + (fun uu___14 -> + (fun uu___14 -> + let uu___15 = + let uu___16 = + let uu___17 = + show uu___2 z in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (show uu___1 y)) - (fun uu___9 -> - (fun uu___9 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (77)) + (Prims.of_int (116)) + (Prims.of_int (83))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (77)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (Obj.magic uu___17) + (fun uu___18 -> + (fun uu___18 -> + let uu___19 = + let uu___20 = + let uu___21 + = + show + uu___3 w in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (70)) + (Prims.of_int (93)) (Prims.of_int (116)) - (Prims.of_int (153))))) - (FStar_Sealed.seal + (Prims.of_int (99))))) + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (93)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (Obj.magic + uu___21) + (fun + uu___22 + -> + (fun + uu___22 + -> + let uu___23 + = + let uu___24 + = + let uu___25 + = + show + uu___4 v in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (77)) + (Prims.of_int (109)) (Prims.of_int (116)) - (Prims.of_int (153))))) + (Prims.of_int (115))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (109)) + (Prims.of_int (116)) + (Prims.of_int (153))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___25) + (fun + uu___26 + -> + (fun + uu___26 + -> + let uu___27 + = + let uu___28 + = + let uu___29 + = + show + uu___5 u in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (77)) + (Prims.of_int (125)) (Prims.of_int (116)) - (Prims.of_int (83))))) + (Prims.of_int (131))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (77)) + (Prims.of_int (125)) (Prims.of_int (116)) (Prims.of_int (153))))) (Obj.magic - (show - uu___2 z)) + uu___29) (fun - uu___10 + uu___30 -> (fun - uu___10 + uu___30 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___31 + = + let uu___32 + = + let uu___33 + = + show + uu___6 t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (86)) + (Prims.of_int (141)) (Prims.of_int (116)) - (Prims.of_int (153))))) + (Prims.of_int (147))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2183,13 +2187,24 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___33) + (fun + uu___34 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___35 + -> + Prims.strcat + uu___34 + ")")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (93)) + (Prims.of_int (141)) (Prims.of_int (116)) (Prims.of_int (153))))) (FStar_Sealed.seal @@ -2201,32 +2216,17 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (93)) - (Prims.of_int (116)) - (Prims.of_int (99))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (93)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (Obj.magic - (show - uu___3 w)) + uu___32) (fun - uu___11 + uu___33 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___34 -> + Prims.strcat + ", " + uu___33)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2234,7 +2234,7 @@ let tac_showable_tuple7 : (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (102)) + (Prims.of_int (134)) (Prims.of_int (116)) (Prims.of_int (153))))) (FStar_Sealed.seal @@ -2246,13 +2246,25 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___31) + (fun + uu___32 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___33 + -> + Prims.strcat + uu___30 + uu___32)))) + uu___30) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (109)) + (Prims.of_int (125)) (Prims.of_int (116)) (Prims.of_int (153))))) (FStar_Sealed.seal @@ -2264,32 +2276,17 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (109)) - (Prims.of_int (116)) - (Prims.of_int (115))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (109)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (Obj.magic - (show - uu___4 v)) + uu___28) (fun - uu___12 + uu___29 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___12 + uu___30 -> + Prims.strcat + ", " + uu___29)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2309,13 +2306,25 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___27) + (fun + uu___28 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___29 + -> + Prims.strcat + uu___26 + uu___28)))) + uu___26) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (125)) + (Prims.of_int (109)) (Prims.of_int (116)) (Prims.of_int (153))))) (FStar_Sealed.seal @@ -2327,32 +2336,17 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (125)) - (Prims.of_int (116)) - (Prims.of_int (131))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Show.fst" - (Prims.of_int (116)) - (Prims.of_int (125)) - (Prims.of_int (116)) - (Prims.of_int (153))))) - (Obj.magic - (show - uu___5 u)) + uu___24) (fun - uu___13 + uu___25 -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___13 + uu___26 -> + Prims.strcat + ", " + uu___25)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2360,7 +2354,7 @@ let tac_showable_tuple7 : (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (134)) + (Prims.of_int (102)) (Prims.of_int (116)) (Prims.of_int (153))))) (FStar_Sealed.seal @@ -2372,34 +2366,59 @@ let tac_showable_tuple7 : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + uu___23) + (fun + uu___24 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___25 + -> + Prims.strcat + uu___22 + uu___24)))) + uu___22) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (141)) + (Prims.of_int (93)) (Prims.of_int (116)) (Prims.of_int (153))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (Obj.magic + uu___20) + (fun uu___21 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___22 + -> + Prims.strcat + ", " + uu___21)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Show.fst" (Prims.of_int (116)) - (Prims.of_int (141)) + (Prims.of_int (86)) (Prims.of_int (116)) - (Prims.of_int (147))))) - (FStar_Sealed.seal + (Prims.of_int (153))))) + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" @@ -2407,135 +2426,131 @@ let tac_showable_tuple7 : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (show - uu___6 t)) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - Prims.strcat - uu___14 - ")")))) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - Prims.strcat - ", " - uu___14)))) - (fun - uu___14 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___15 - -> - Prims.strcat - uu___13 - uu___14)))) - uu___13))) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - Prims.strcat - ", " - uu___13)))) - (fun - uu___13 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___14 - -> - Prims.strcat - uu___12 - uu___13)))) - uu___12))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Prims.strcat - ", " - uu___12)))) - (fun - uu___12 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___13 - -> - Prims.strcat - uu___11 - uu___12)))) - uu___11))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Prims.strcat - ", " - uu___11)))) - (fun - uu___11 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___12 - -> - Prims.strcat - uu___10 - uu___11)))) - uu___10))) - (fun - uu___10 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___11 - -> - Prims.strcat - ", " - uu___10)))) - (fun - uu___10 + (Obj.magic + uu___19) + (fun + uu___20 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___11 + uu___21 -> Prims.strcat - uu___9 - uu___10)))) - uu___9))) - (fun uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___10 -> - Prims.strcat ", " - uu___9)))) - (fun uu___9 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___10 -> - Prims.strcat uu___8 - uu___9)))) uu___8))) - (fun uu___8 -> + uu___18 + uu___20)))) + uu___18) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (77)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___16) + (fun uu___17 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___18 -> + Prims.strcat + ", " uu___17)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (70)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___15) + (fun uu___16 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___17 -> + Prims.strcat + uu___14 + uu___16)))) + uu___14) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (61)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + Prims.strcat ", " uu___13)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (54)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + Prims.strcat uu___10 + uu___12)))) uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Show.fst" + (Prims.of_int (116)) + (Prims.of_int (45)) + (Prims.of_int (116)) + (Prims.of_int (153))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___8) + (fun uu___9 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___9 -> Prims.strcat "(" uu___8))) + (fun uu___10 -> Prims.strcat "(" uu___9))) } \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Syntax_Base.ml b/src/ocaml/plugin/generated/Pulse_Syntax_Base.ml index 5547aec28..23f6577bb 100644 --- a/src/ocaml/plugin/generated/Pulse_Syntax_Base.ml +++ b/src/ocaml/plugin/generated/Pulse_Syntax_Base.ml @@ -896,6 +896,38 @@ let (as_binder : term -> binder) = fun t -> null_binder t let (ppname_for_uvar : ppname -> (ppname, unit) FStar_Tactics_Effect.tac_repr) = fun p -> + let uu___ = + let uu___1 = + let uu___2 = FStar_Tactics_Unseal.unseal p.name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" + (Prims.of_int (416)) (Prims.of_int (32)) + (Prims.of_int (416)) (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> Prims.strcat "?" uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" + (Prims.of_int (416)) (Prims.of_int (25)) + (Prims.of_int (416)) (Prims.of_int (48))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" + (Prims.of_int (416)) (Prims.of_int (18)) + (Prims.of_int (416)) (Prims.of_int (48))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> FStar_Sealed.seal uu___2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -906,38 +938,7 @@ let (ppname_for_uvar : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" (Prims.of_int (416)) (Prims.of_int (4)) (Prims.of_int (416)) - (Prims.of_int (49))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" - (Prims.of_int (416)) (Prims.of_int (25)) - (Prims.of_int (416)) (Prims.of_int (48))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" - (Prims.of_int (416)) (Prims.of_int (18)) - (Prims.of_int (416)) (Prims.of_int (48))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Base.fsti" - (Prims.of_int (416)) (Prims.of_int (32)) - (Prims.of_int (416)) (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (FStar_Tactics_Unseal.unseal p.name)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.strcat "?" uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Sealed.seal uu___)))) - (fun uu___ -> + (Prims.of_int (49))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> { name = uu___; range = (p.range) })) \ No newline at end of file + (fun uu___2 -> { name = uu___1; range = (p.range) })) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Syntax_Printer.ml b/src/ocaml/plugin/generated/Pulse_Syntax_Printer.ml index aff9415b7..c0bf8fd76 100644 --- a/src/ocaml/plugin/generated/Pulse_Syntax_Printer.ml +++ b/src/ocaml/plugin/generated/Pulse_Syntax_Printer.ml @@ -71,6 +71,7 @@ let rec (binder_to_string_paren : (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun b -> + let uu___ = term_to_string' "" b.Pulse_Syntax_Base.binder_ty in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -81,10 +82,150 @@ let rec (binder_to_string_paren : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (78)) (Prims.of_int (4)) (Prims.of_int (83)) - (Prims.of_int (44))))) - (Obj.magic (term_to_string' "" b.Pulse_Syntax_Base.binder_ty)) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (44))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + FStar_Tactics_Unseal.unseal + (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (82)) (Prims.of_int (12)) + (Prims.of_int (82)) (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (78)) (Prims.of_int (4)) + (Prims.of_int (83)) (Prims.of_int (44))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + let uu___7 = + FStar_Tactics_Unseal.unseal + b.Pulse_Syntax_Base.binder_attrs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (79)) (Prims.of_int (19)) + (Prims.of_int (79)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (79)) (Prims.of_int (12)) + (Prims.of_int (81)) (Prims.of_int (91))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + match uu___8 with + | [] -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> ""))) + | l -> + Obj.magic + (Obj.repr + (let uu___9 = + let uu___10 = + FStar_Tactics_Util.map + (term_to_string' "") l in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (81)) + (Prims.of_int (59)) + (Prims.of_int (81)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (81)) + (Prims.of_int (40)) + (Prims.of_int (81)) + (Prims.of_int (90))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_String.concat + ";" uu___11)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (81)) + (Prims.of_int (40)) + (Prims.of_int (81)) + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Prims.strcat "[@@@ " + (Prims.strcat uu___10 + "] ")))))) uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (79)) (Prims.of_int (12)) + (Prims.of_int (81)) (Prims.of_int (91))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" + (Prims.of_int (122)) (Prims.of_int (8)) + (Prims.of_int (124)) (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "(" + (Prims.strcat uu___7 "")) + (Prims.strcat x ":")) + (Prims.strcat x1 ")"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (78)) (Prims.of_int (4)) + (Prims.of_int (83)) (Prims.of_int (44))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (78)) (Prims.of_int (4)) + (Prims.of_int (83)) (Prims.of_int (44))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -97,169 +238,10 @@ let rec (binder_to_string_paren : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (78)) (Prims.of_int (4)) (Prims.of_int (83)) (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (82)) (Prims.of_int (12)) - (Prims.of_int (82)) (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (78)) (Prims.of_int (4)) - (Prims.of_int (83)) (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (78)) - (Prims.of_int (4)) - (Prims.of_int (83)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (78)) - (Prims.of_int (4)) - (Prims.of_int (83)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (79)) - (Prims.of_int (12)) - (Prims.of_int (81)) - (Prims.of_int (91))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (79)) - (Prims.of_int (19)) - (Prims.of_int (79)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (79)) - (Prims.of_int (12)) - (Prims.of_int (81)) - (Prims.of_int (91))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - b.Pulse_Syntax_Base.binder_attrs)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with - | [] -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> ""))) - | l -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (81)) - (Prims.of_int (40)) - (Prims.of_int (81)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (81)) - (Prims.of_int (59)) - (Prims.of_int (81)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (81)) - (Prims.of_int (40)) - (Prims.of_int (81)) - (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Util.map - (term_to_string' - "") l)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_String.concat - ";" - uu___3)))) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - "[@@@ " - (Prims.strcat - uu___3 - "] ")))))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat "(" - (Prims.strcat - uu___2 "")) - (Prims.strcat x ":")) - (Prims.strcat x1 ")"))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___) + (fun uu___4 -> uu___3 uu___1)))) uu___1) and (term_to_string' : Prims.string -> Pulse_Syntax_Base.term -> @@ -277,7 +259,8 @@ and (term_to_string' : | Pulse_Syntax_Pure.Tm_Pure p -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string' (indent level) p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -288,15 +271,17 @@ and (term_to_string' : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string' (indent level) p)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat "pure (" (Prims.strcat uu___ ")"))))) + (fun uu___2 -> + Prims.strcat "pure (" + (Prims.strcat uu___1 ")"))))) | Pulse_Syntax_Pure.Tm_Star (p1, p2) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string' level p2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -307,9 +292,63 @@ and (term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (94)) (Prims.of_int (6)) (Prims.of_int (97)) (Prims.of_int (34))))) - (Obj.magic (term_to_string' level p2)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = term_to_string' level p1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (95)) + (Prims.of_int (8)) + (Prims.of_int (95)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "" + (Prims.strcat uu___5 + " ** \n")) + (Prims.strcat x "")) + (Prims.strcat x1 ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (94)) + (Prims.of_int (6)) + (Prims.of_int (97)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (94)) + (Prims.of_int (6)) + (Prims.of_int (97)) + (Prims.of_int (34))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -328,70 +367,21 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (97)) (Prims.of_int (34))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (94)) - (Prims.of_int (6)) - (Prims.of_int (97)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (94)) - (Prims.of_int (6)) - (Prims.of_int (97)) - (Prims.of_int (34))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (95)) - (Prims.of_int (8)) - (Prims.of_int (95)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string' level p1)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "" - (Prims.strcat - uu___1 - " ** \n")) - (Prims.strcat - x "")) - (Prims.strcat x1 - ""))))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Pure.Tm_ExistsSL (uu___, uu___1, uu___2) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + collect_binders + Pulse_Syntax_Pure.uu___is_Tm_ExistsSL t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -402,14 +392,13 @@ and (term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (99)) (Prims.of_int (26)) (Prims.of_int (104)) (Prims.of_int (51))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - collect_binders - Pulse_Syntax_Pure.uu___is_Tm_ExistsSL t)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (bs, body) -> + let uu___5 = + term_to_string' (indent level) body in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -428,10 +417,95 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (104)) (Prims.of_int (51))))) - (Obj.magic - (term_to_string' (indent level) body)) - (fun uu___4 -> - (fun uu___4 -> + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + let uu___9 = + let uu___10 = + FStar_Tactics_Util.map + binder_to_string_paren + bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (102)) + (Prims.of_int (15)) + (Prims.of_int (102)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (102)) + (Prims.of_int (14)) + (Prims.of_int (102)) + (Prims.of_int (68))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_String.concat + " " uu___11)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (102)) + (Prims.of_int (14)) + (Prims.of_int (102)) + (Prims.of_int (68))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "(exists* " + (Prims.strcat + uu___10 + ".\n")) + (Prims.strcat + x "")) + (Prims.strcat + x1 ")"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (101)) + (Prims.of_int (6)) + (Prims.of_int (104)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (101)) + (Prims.of_int (6)) + (Prims.of_int (104)) + (Prims.of_int (51))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + uu___9 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -450,102 +524,22 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (104)) (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (101)) - (Prims.of_int (6)) - (Prims.of_int (104)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (101)) - (Prims.of_int (6)) - (Prims.of_int (104)) - (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (102)) - (Prims.of_int (14)) - (Prims.of_int (102)) - (Prims.of_int (68))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (102)) - (Prims.of_int (15)) - (Prims.of_int (102)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (102)) - (Prims.of_int (14)) - (Prims.of_int (102)) - (Prims.of_int (68))))) - (Obj.magic - (FStar_Tactics_Util.map - binder_to_string_paren - bs)) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - FStar_String.concat - " " - uu___5)))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 - -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "(exists* " - (Prims.strcat - uu___5 - ".\n")) - (Prims.strcat - x "")) - (Prims.strcat - x1 ")"))))) - (fun uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - uu___5 level)))) - (fun uu___5 -> + (Obj.magic uu___7) + (fun uu___8 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> - uu___5 uu___4)))) - uu___4))) uu___3))) + (fun uu___9 -> + uu___8 uu___6)))) + uu___6))) uu___4))) | Pulse_Syntax_Pure.Tm_ForallSL (u, b, body) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + collect_binders + Pulse_Syntax_Pure.uu___is_Tm_ForallSL t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -556,14 +550,13 @@ and (term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (106)) (Prims.of_int (29)) (Prims.of_int (111)) (Prims.of_int (51))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - collect_binders - Pulse_Syntax_Pure.uu___is_Tm_ForallSL t)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (bs, body1) -> + let uu___2 = + term_to_string' (indent level) body1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -582,11 +575,95 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (111)) (Prims.of_int (51))))) - (Obj.magic - (term_to_string' (indent level) - body1)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + FStar_Tactics_Util.map + binder_to_string_paren + bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (109)) + (Prims.of_int (15)) + (Prims.of_int (109)) + (Prims.of_int (46))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (109)) + (Prims.of_int (14)) + (Prims.of_int (109)) + (Prims.of_int (68))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_String.concat + " " uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (109)) + (Prims.of_int (14)) + (Prims.of_int (109)) + (Prims.of_int (68))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "(forall* " + (Prims.strcat + uu___7 + ".\n")) + (Prims.strcat + x "")) + (Prims.strcat + x1 ")"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (108)) + (Prims.of_int (6)) + (Prims.of_int (111)) + (Prims.of_int (51))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (108)) + (Prims.of_int (6)) + (Prims.of_int (111)) + (Prims.of_int (51))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + uu___6 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -605,98 +682,12 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (111)) (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (108)) - (Prims.of_int (6)) - (Prims.of_int (111)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (108)) - (Prims.of_int (6)) - (Prims.of_int (111)) - (Prims.of_int (51))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (109)) - (Prims.of_int (14)) - (Prims.of_int (109)) - (Prims.of_int (68))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (109)) - (Prims.of_int (15)) - (Prims.of_int (109)) - (Prims.of_int (46))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (109)) - (Prims.of_int (14)) - (Prims.of_int (109)) - (Prims.of_int (68))))) - (Obj.magic - (FStar_Tactics_Util.map - binder_to_string_paren - bs)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - FStar_String.concat - " " - uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "(forall* " - (Prims.strcat - uu___2 - ".\n")) - (Prims.strcat - x "")) - (Prims.strcat - x1 ")"))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 level)))) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 uu___1)))) - uu___1))) uu___))) + (fun uu___6 -> + uu___5 uu___3)))) + uu___3))) uu___1))) | Pulse_Syntax_Pure.Tm_SLProp -> Obj.magic (Obj.repr @@ -719,7 +710,8 @@ and (term_to_string' : | Pulse_Syntax_Pure.Tm_Inv (i, p) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string' level p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -730,9 +722,37 @@ and (term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (118)) (Prims.of_int (6)) (Prims.of_int (120)) (Prims.of_int (33))))) - (Obj.magic (term_to_string' level p)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = term_to_string' level i in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (119)) + (Prims.of_int (8)) + (Prims.of_int (119)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + fun x -> + Prims.strcat + (Prims.strcat "inv " + (Prims.strcat uu___4 " ")) + (Prims.strcat x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -751,37 +771,11 @@ and (term_to_string' : (Prims.of_int (6)) (Prims.of_int (120)) (Prims.of_int (33))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (119)) - (Prims.of_int (8)) - (Prims.of_int (119)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic (term_to_string' level i)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - Prims.strcat - (Prims.strcat "inv " - (Prims.strcat uu___1 - " ")) - (Prims.strcat x ""))))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Pure.Tm_FStar t1 -> Obj.magic (Obj.repr (FStar_Tactics_V2_Builtins.term_to_string t1))) @@ -812,7 +806,8 @@ let rec fold_right1 : | hd::tl -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = fold_right1 f tl in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -823,14 +818,15 @@ let rec fold_right1 : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (131)) (Prims.of_int (14)) (Prims.of_int (131)) (Prims.of_int (37))))) - (Obj.magic (fold_right1 f tl)) - (fun uu___ -> - (fun uu___ -> Obj.magic (f hd uu___)) uu___)))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> Obj.magic (f hd uu___1)) uu___1)))) uu___1 uu___ let (should_paren_term : Pulse_Syntax_Base.term -> (Prims.bool, unit) FStar_Tactics_Effect.tac_repr) = fun t -> + let uu___ = FStar_Tactics_NamedView.inspect t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -841,20 +837,88 @@ let (should_paren_term : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (134)) (Prims.of_int (2)) (Prims.of_int (136)) - (Prims.of_int (14))))) - (Obj.magic (FStar_Tactics_NamedView.inspect t)) - (fun uu___ -> + (Prims.of_int (14))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | FStar_Tactics_NamedView.Tv_Match (uu___2, uu___3, uu___4) -> + (fun uu___2 -> + match uu___1 with + | FStar_Tactics_NamedView.Tv_Match (uu___3, uu___4, uu___5) -> true - | uu___2 -> false)) + | uu___3 -> false)) let rec (binder_to_doc : Pulse_Syntax_Base.binder -> (FStar_Pprint.document, unit) FStar_Tactics_Effect.tac_repr) = fun b -> + let uu___ = + let uu___1 = + let uu___2 = + FStar_Tactics_Unseal.unseal + (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (139)) (Prims.of_int (24)) + (Prims.of_int (139)) (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (139)) (Prims.of_int (10)) + (Prims.of_int (139)) (Prims.of_int (55))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> FStar_Pprint.doc_of_string uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (139)) (Prims.of_int (10)) + (Prims.of_int (139)) (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (139)) (Prims.of_int (9)) (Prims.of_int (141)) + (Prims.of_int (37))))) (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = term_to_doc b.Pulse_Syntax_Base.binder_ty in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (141)) (Prims.of_int (13)) + (Prims.of_int (141)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (140)) (Prims.of_int (13)) + (Prims.of_int (141)) (Prims.of_int (36))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string ":") uu___5)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (140)) (Prims.of_int (13)) + (Prims.of_int (141)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (139)) (Prims.of_int (9)) + (Prims.of_int (141)) (Prims.of_int (37))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> FStar_Pprint.op_Hat_Hat uu___2 uu___4)))) + uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -865,84 +929,10 @@ let rec (binder_to_doc : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (139)) (Prims.of_int (2)) (Prims.of_int (141)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (139)) (Prims.of_int (10)) - (Prims.of_int (139)) (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (139)) (Prims.of_int (9)) - (Prims.of_int (141)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (139)) (Prims.of_int (24)) - (Prims.of_int (139)) (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (139)) (Prims.of_int (10)) - (Prims.of_int (139)) (Prims.of_int (55))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.doc_of_string uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (140)) (Prims.of_int (13)) - (Prims.of_int (141)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (139)) (Prims.of_int (9)) - (Prims.of_int (141)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (141)) - (Prims.of_int (13)) - (Prims.of_int (141)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (140)) - (Prims.of_int (13)) - (Prims.of_int (141)) - (Prims.of_int (36))))) - (Obj.magic - (term_to_doc b.Pulse_Syntax_Base.binder_ty)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string ":") - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat uu___ uu___1)))) uu___))) - (fun uu___ -> + (Prims.of_int (37))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.parens uu___)) + (fun uu___2 -> FStar_Pprint.parens uu___1)) and (term_to_doc : Pulse_Syntax_Base.term -> (FStar_Pprint.document, unit) FStar_Tactics_Effect.tac_repr) @@ -958,7 +948,24 @@ and (term_to_doc : | Pulse_Syntax_Pure.Tm_Pure p -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = term_to_doc p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (147)) (Prims.of_int (51)) + (Prims.of_int (147)) (Prims.of_int (66))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (147)) (Prims.of_int (44)) + (Prims.of_int (147)) (Prims.of_int (66))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> FStar_Pprint.parens uu___2)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -969,33 +976,20 @@ and (term_to_doc : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (147)) (Prims.of_int (19)) (Prims.of_int (147)) (Prims.of_int (66))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (147)) (Prims.of_int (51)) - (Prims.of_int (147)) (Prims.of_int (66))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (147)) (Prims.of_int (44)) - (Prims.of_int (147)) (Prims.of_int (66))))) - (Obj.magic (term_to_doc p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.parens uu___)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string "pure ") uu___)))) + (FStar_Pprint.doc_of_string "pure ") uu___1)))) | Pulse_Syntax_Pure.Tm_Star (uu___, uu___1) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> Pulse_Syntax_Pure.slprop_as_list t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1006,10 +1000,64 @@ and (term_to_doc : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (158)) (Prims.of_int (42)) (Prims.of_int (169)) (Prims.of_int (80))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Pulse_Syntax_Pure.slprop_as_list t)) - (fun uu___2 -> + (Obj.magic uu___2) + (fun uu___3 -> (fun components -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + fun t1 -> + let uu___5 = should_paren_term t1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (160)) + (Prims.of_int (11)) + (Prims.of_int (160)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (160)) + (Prims.of_int (8)) + (Prims.of_int (162)) + (Prims.of_int (26))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + if uu___6 + then + let uu___7 = term_to_doc t1 in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (161)) + (Prims.of_int (20)) + (Prims.of_int (161)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (161)) + (Prims.of_int (13)) + (Prims.of_int (161)) + (Prims.of_int (35))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.parens + uu___8))) + else Obj.magic (term_to_doc t1)) + uu___6))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1028,60 +1076,12 @@ and (term_to_doc : (Prims.of_int (8)) (Prims.of_int (169)) (Prims.of_int (80))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun t1 -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (160)) - (Prims.of_int (11)) - (Prims.of_int (160)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (160)) - (Prims.of_int (8)) - (Prims.of_int (162)) - (Prims.of_int (26))))) - (Obj.magic (should_paren_term t1)) - (fun uu___3 -> - (fun uu___3 -> - if uu___3 - then - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (161)) - (Prims.of_int (20)) - (Prims.of_int (161)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (161)) - (Prims.of_int (13)) - (Prims.of_int (161)) - (Prims.of_int (35))))) - (Obj.magic - (term_to_doc t1)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.parens - uu___4))) - else Obj.magic (term_to_doc t1)) - uu___3))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun term_to_doc_paren -> + let uu___4 = + FStar_Tactics_Util.map + term_to_doc_paren components in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1100,11 +1100,28 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (169)) (Prims.of_int (80))))) - (Obj.magic - (FStar_Tactics_Util.map - term_to_doc_paren components)) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> (fun docs -> + let uu___5 = + fold_right1 + (fun uu___7 -> + fun uu___6 -> + (fun p -> + fun q -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 + -> + FStar_Pprint.op_Hat_Slash_Hat + (FStar_Pprint.op_Hat_Hat + p + (FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string + " ") + star_doc)) + q))) + uu___7 uu___6) docs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1123,36 +1140,23 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (169)) (Prims.of_int (80))))) - (Obj.magic - (fold_right1 - (fun uu___3 -> - fun uu___2 -> - (fun p -> - fun q -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_Pprint.op_Hat_Slash_Hat - (FStar_Pprint.op_Hat_Hat - p - (FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string - " ") - star_doc)) - q))) - uu___3 - uu___2) docs)) - (fun uu___2 -> + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> + (fun uu___7 -> FStar_Pprint.group - uu___2)))) - uu___2))) uu___2))) uu___2))) + uu___6)))) + uu___5))) uu___4))) uu___3))) | Pulse_Syntax_Pure.Tm_ExistsSL (uu___, uu___1, uu___2) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + collect_binders + Pulse_Syntax_Pure.uu___is_Tm_ExistsSL t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1163,14 +1167,84 @@ and (term_to_doc : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (171)) (Prims.of_int (26)) (Prims.of_int (176)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - collect_binders - Pulse_Syntax_Pure.uu___is_Tm_ExistsSL t)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (bs, body) -> + let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + FStar_Tactics_Util.map binder_to_doc bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (62)) + (Prims.of_int (173)) + (Prims.of_int (86))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (32)) + (Prims.of_int (173)) + (Prims.of_int (87))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.separate + (FStar_Pprint.doc_of_string + " ") uu___9)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (32)) + (Prims.of_int (173)) + (Prims.of_int (87))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (25)) + (Prims.of_int (173)) + (Prims.of_int (88))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.group uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (25)) + (Prims.of_int (173)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (173)) + (Prims.of_int (19)) + (Prims.of_int (173)) + (Prims.of_int (88))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.align uu___7)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1189,80 +1263,44 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (176)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (25)) - (Prims.of_int (173)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (19)) - (Prims.of_int (173)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (32)) - (Prims.of_int (173)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (25)) - (Prims.of_int (173)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (62)) - (Prims.of_int (173)) - (Prims.of_int (86))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (173)) - (Prims.of_int (32)) - (Prims.of_int (173)) - (Prims.of_int (87))))) - (Obj.magic - (FStar_Tactics_Util.map - binder_to_doc bs)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.separate - (FStar_Pprint.doc_of_string - " ") uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.group - uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.align uu___4)))) - (fun uu___4 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun bs_doc -> + let uu___6 = + let uu___7 = term_to_doc body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (176)) + (Prims.of_int (19)) + (Prims.of_int (176)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (175)) + (Prims.of_int (8)) + (Prims.of_int (176)) + (Prims.of_int (37))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.op_Hat_Hat + (FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.doc_of_string + "exists*") + bs_doc) + FStar_Pprint.dot) + uu___8)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1281,51 +1319,23 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (176)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (176)) - (Prims.of_int (19)) - (Prims.of_int (176)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (175)) - (Prims.of_int (8)) - (Prims.of_int (176)) - (Prims.of_int (37))))) - (Obj.magic - (term_to_doc body)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.op_Hat_Hat - (FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.doc_of_string - "exists*") - bs_doc) - FStar_Pprint.dot) - uu___4)))) - (fun uu___4 -> + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> + (fun uu___8 -> FStar_Pprint.parens - uu___4)))) uu___4))) - uu___3))) + uu___7)))) uu___6))) + uu___4))) | Pulse_Syntax_Pure.Tm_ForallSL (uu___, uu___1, uu___2) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + collect_binders + Pulse_Syntax_Pure.uu___is_Tm_ForallSL t)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1336,14 +1346,84 @@ and (term_to_doc : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (181)) (Prims.of_int (26)) (Prims.of_int (186)) (Prims.of_int (37))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - collect_binders - Pulse_Syntax_Pure.uu___is_Tm_ForallSL t)) - (fun uu___3 -> - (fun uu___3 -> - match uu___3 with + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + match uu___4 with | (bs, body) -> + let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + FStar_Tactics_Util.map binder_to_doc bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (62)) + (Prims.of_int (183)) + (Prims.of_int (86))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (32)) + (Prims.of_int (183)) + (Prims.of_int (87))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + FStar_Pprint.separate + (FStar_Pprint.doc_of_string + " ") uu___9)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (32)) + (Prims.of_int (183)) + (Prims.of_int (87))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (25)) + (Prims.of_int (183)) + (Prims.of_int (88))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.group uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (25)) + (Prims.of_int (183)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (183)) + (Prims.of_int (19)) + (Prims.of_int (183)) + (Prims.of_int (88))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.align uu___7)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1362,80 +1442,44 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (186)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (25)) - (Prims.of_int (183)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (19)) - (Prims.of_int (183)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (32)) - (Prims.of_int (183)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (25)) - (Prims.of_int (183)) - (Prims.of_int (88))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (62)) - (Prims.of_int (183)) - (Prims.of_int (86))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (183)) - (Prims.of_int (32)) - (Prims.of_int (183)) - (Prims.of_int (87))))) - (Obj.magic - (FStar_Tactics_Util.map - binder_to_doc bs)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.separate - (FStar_Pprint.doc_of_string - " ") uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.group - uu___4)))) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.align uu___4)))) - (fun uu___4 -> + (Obj.magic uu___5) + (fun uu___6 -> (fun bs_doc -> + let uu___6 = + let uu___7 = term_to_doc body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (186)) + (Prims.of_int (19)) + (Prims.of_int (186)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (185)) + (Prims.of_int (8)) + (Prims.of_int (186)) + (Prims.of_int (37))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.op_Hat_Hat + (FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (FStar_Pprint.doc_of_string + "forall*") + bs_doc) + FStar_Pprint.dot) + uu___8)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1454,47 +1498,13 @@ and (term_to_doc : (Prims.of_int (6)) (Prims.of_int (186)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (186)) - (Prims.of_int (19)) - (Prims.of_int (186)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (185)) - (Prims.of_int (8)) - (Prims.of_int (186)) - (Prims.of_int (37))))) - (Obj.magic - (term_to_doc body)) - (fun uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.op_Hat_Hat - (FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (FStar_Pprint.doc_of_string - "forall*") - bs_doc) - FStar_Pprint.dot) - uu___4)))) - (fun uu___4 -> + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___5 -> + (fun uu___8 -> FStar_Pprint.parens - uu___4)))) uu___4))) - uu___3))) + uu___7)))) uu___6))) + uu___4))) | Pulse_Syntax_Pure.Tm_SLProp -> Obj.magic (Obj.repr @@ -1513,7 +1523,96 @@ and (term_to_doc : | Pulse_Syntax_Pure.Tm_Inv (i, p) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = term_to_doc i in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (193)) (Prims.of_int (8)) + (Prims.of_int (193)) (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (193)) (Prims.of_int (8)) + (Prims.of_int (195)) (Prims.of_int (30))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = term_to_doc p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (195)) + (Prims.of_int (15)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (195)) + (Prims.of_int (8)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.parens uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (195)) + (Prims.of_int (8)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (194)) + (Prims.of_int (8)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string " ") + uu___5)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (194)) + (Prims.of_int (8)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (193)) + (Prims.of_int (8)) + (Prims.of_int (195)) + (Prims.of_int (30))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Hat uu___2 uu___4)))) + uu___2) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1524,99 +1623,12 @@ and (term_to_doc : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (192)) (Prims.of_int (6)) (Prims.of_int (195)) (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (193)) (Prims.of_int (8)) - (Prims.of_int (193)) (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (193)) (Prims.of_int (8)) - (Prims.of_int (195)) (Prims.of_int (30))))) - (Obj.magic (term_to_doc i)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (194)) - (Prims.of_int (8)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (193)) - (Prims.of_int (8)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (195)) - (Prims.of_int (8)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (194)) - (Prims.of_int (8)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (195)) - (Prims.of_int (15)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (195)) - (Prims.of_int (8)) - (Prims.of_int (195)) - (Prims.of_int (30))))) - (Obj.magic (term_to_doc p)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.parens - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string - " ") uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat uu___ - uu___1)))) uu___))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string "inv ") uu___)))) + (FStar_Pprint.doc_of_string "inv ") uu___1)))) | Pulse_Syntax_Pure.Tm_Unknown -> Obj.magic (Obj.repr @@ -1630,6 +1642,7 @@ let (binder_to_string : (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun b -> + let uu___ = term_to_string b.Pulse_Syntax_Base.binder_ty in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1640,10 +1653,150 @@ let (binder_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (202)) (Prims.of_int (4)) (Prims.of_int (207)) - (Prims.of_int (40))))) - (Obj.magic (term_to_string b.Pulse_Syntax_Base.binder_ty)) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (40))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + FStar_Tactics_Unseal.unseal + (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (206)) (Prims.of_int (12)) + (Prims.of_int (206)) (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (202)) (Prims.of_int (4)) + (Prims.of_int (207)) (Prims.of_int (40))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + let uu___7 = + FStar_Tactics_Unseal.unseal + b.Pulse_Syntax_Base.binder_attrs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (203)) (Prims.of_int (19)) + (Prims.of_int (203)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (203)) (Prims.of_int (12)) + (Prims.of_int (205)) (Prims.of_int (91))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + match uu___8 with + | [] -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> ""))) + | l -> + Obj.magic + (Obj.repr + (let uu___9 = + let uu___10 = + FStar_Tactics_Util.map + (term_to_string' "") l in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (205)) + (Prims.of_int (59)) + (Prims.of_int (205)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (205)) + (Prims.of_int (40)) + (Prims.of_int (205)) + (Prims.of_int (90))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + FStar_String.concat + ";" uu___11)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (205)) + (Prims.of_int (40)) + (Prims.of_int (205)) + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + Prims.strcat "[@@@ " + (Prims.strcat uu___10 + "] ")))))) uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (203)) (Prims.of_int (12)) + (Prims.of_int (205)) (Prims.of_int (91))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" + (Prims.of_int (122)) (Prims.of_int (8)) + (Prims.of_int (124)) (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "" + (Prims.strcat uu___7 "")) + (Prims.strcat x ":")) + (Prims.strcat x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (202)) (Prims.of_int (4)) + (Prims.of_int (207)) (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (202)) (Prims.of_int (4)) + (Prims.of_int (207)) (Prims.of_int (40))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1656,169 +1809,10 @@ let (binder_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (202)) (Prims.of_int (4)) (Prims.of_int (207)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (206)) (Prims.of_int (12)) - (Prims.of_int (206)) (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (202)) (Prims.of_int (4)) - (Prims.of_int (207)) (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - (b.Pulse_Syntax_Base.binder_ppname).Pulse_Syntax_Base.name)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (202)) - (Prims.of_int (4)) - (Prims.of_int (207)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (202)) - (Prims.of_int (4)) - (Prims.of_int (207)) - (Prims.of_int (40))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (203)) - (Prims.of_int (12)) - (Prims.of_int (205)) - (Prims.of_int (91))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (203)) - (Prims.of_int (19)) - (Prims.of_int (203)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (203)) - (Prims.of_int (12)) - (Prims.of_int (205)) - (Prims.of_int (91))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - b.Pulse_Syntax_Base.binder_attrs)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 with - | [] -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 - -> ""))) - | l -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (205)) - (Prims.of_int (40)) - (Prims.of_int (205)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (205)) - (Prims.of_int (59)) - (Prims.of_int (205)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (205)) - (Prims.of_int (40)) - (Prims.of_int (205)) - (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Util.map - (term_to_string' - "") l)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - FStar_String.concat - ";" - uu___3)))) - (fun uu___3 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - Prims.strcat - "[@@@ " - (Prims.strcat - uu___3 - "] ")))))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat "" - (Prims.strcat - uu___2 "")) - (Prims.strcat x ":")) - (Prims.strcat x1 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___) + (fun uu___4 -> uu___3 uu___1)))) uu___1) let (ctag_to_string : Pulse_Syntax_Base.ctag -> Prims.string) = fun uu___ -> match uu___ with @@ -1846,7 +1840,8 @@ let (effect_annot_to_string : { Pulse_Syntax_Base.opens = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1857,16 +1852,17 @@ let (effect_annot_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string opens)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "stt_ghost " (Prims.strcat uu___1 ""))))) + (fun uu___3 -> + Prims.strcat "stt_ghost " (Prims.strcat uu___2 ""))))) | Pulse_Syntax_Base.EffectAnnotAtomic { Pulse_Syntax_Base.opens1 = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1877,17 +1873,18 @@ let (effect_annot_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string opens)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.strcat "stt_atomic " - (Prims.strcat uu___1 ""))))) + (Prims.strcat uu___2 ""))))) | Pulse_Syntax_Base.EffectAnnotAtomicOrGhost { Pulse_Syntax_Base.opens2 = opens;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string opens in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -1898,12 +1895,12 @@ let (effect_annot_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string opens)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.strcat "stt_atomic_or_ghost " - (Prims.strcat uu___1 "")))))) uu___ + (Prims.strcat uu___2 "")))))) uu___ let (comp_to_string : Pulse_Syntax_Base.comp -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -1911,6 +1908,7 @@ let (comp_to_string : fun c -> match c with | Pulse_Syntax_Base.C_Tot t -> + let uu___ = term_to_string t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1921,11 +1919,12 @@ let (comp_to_string : (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) (Obj.magic (term_to_string t)) - (fun uu___ -> + (Prims.of_int (31))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> Prims.strcat "Tot " (Prims.strcat uu___ ""))) + (fun uu___2 -> Prims.strcat "Tot " (Prims.strcat uu___1 ""))) | Pulse_Syntax_Base.C_ST s -> + let uu___ = term_to_string s.Pulse_Syntax_Base.post in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1937,9 +1936,79 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (232)) (Prims.of_int (6)) (Prims.of_int (235)) (Prims.of_int (37))))) - (Obj.magic (term_to_string s.Pulse_Syntax_Base.post)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = term_to_string s.Pulse_Syntax_Base.pre in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (234)) (Prims.of_int (14)) + (Prims.of_int (234)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (232)) (Prims.of_int (6)) + (Prims.of_int (235)) (Prims.of_int (37))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + term_to_string s.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (233)) + (Prims.of_int (14)) + (Prims.of_int (233)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "stt " + (Prims.strcat uu___7 + " (requires\n")) + (Prims.strcat x ") (ensures\n")) + (Prims.strcat x1 ")"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (232)) + (Prims.of_int (6)) + (Prims.of_int (235)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (232)) + (Prims.of_int (6)) + (Prims.of_int (235)) + (Prims.of_int (37))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1952,87 +2021,12 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (232)) (Prims.of_int (6)) (Prims.of_int (235)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (234)) (Prims.of_int (14)) - (Prims.of_int (234)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (232)) (Prims.of_int (6)) - (Prims.of_int (235)) (Prims.of_int (37))))) - (Obj.magic - (term_to_string s.Pulse_Syntax_Base.pre)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (232)) - (Prims.of_int (6)) - (Prims.of_int (235)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (232)) - (Prims.of_int (6)) - (Prims.of_int (235)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (233)) - (Prims.of_int (14)) - (Prims.of_int (233)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string - s.Pulse_Syntax_Base.res)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "stt " - (Prims.strcat - uu___2 - " (requires\n")) - (Prims.strcat x - ") (ensures\n")) - (Prims.strcat x1 - ")"))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___) + (fun uu___4 -> uu___3 uu___1)))) uu___1) | Pulse_Syntax_Base.C_STAtomic (inames, obs, s) -> + let uu___ = term_to_string s.Pulse_Syntax_Base.post in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2044,9 +2038,165 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (238)) (Prims.of_int (6)) (Prims.of_int (243)) (Prims.of_int (37))))) - (Obj.magic (term_to_string s.Pulse_Syntax_Base.post)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = term_to_string s.Pulse_Syntax_Base.pre in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (242)) (Prims.of_int (14)) + (Prims.of_int (242)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) (Prims.of_int (6)) + (Prims.of_int (243)) (Prims.of_int (37))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = term_to_string inames in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (241)) + (Prims.of_int (14)) + (Prims.of_int (241)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + let uu___10 = + term_to_string + s.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (239)) + (Prims.of_int (14)) + (Prims.of_int (239)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + fun x -> + fun x1 -> + fun x2 -> + fun x3 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "stt_atomic " + (Prims.strcat + uu___11 + " #")) + (Prims.strcat + x " ")) + (Prims.strcat + x1 + " (requires\n")) + (Prims.strcat + x2 + ") (ensures\n")) + (Prims.strcat x3 + ")"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + uu___10 + (observability_to_string + obs))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> uu___9 uu___7)))) + uu___7) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (238)) + (Prims.of_int (6)) + (Prims.of_int (243)) + (Prims.of_int (37))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2059,169 +2209,12 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (238)) (Prims.of_int (6)) (Prims.of_int (243)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (242)) (Prims.of_int (14)) - (Prims.of_int (242)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) (Prims.of_int (6)) - (Prims.of_int (243)) (Prims.of_int (37))))) - (Obj.magic - (term_to_string s.Pulse_Syntax_Base.pre)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (241)) - (Prims.of_int (14)) - (Prims.of_int (241)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (Obj.magic - (term_to_string inames)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (238)) - (Prims.of_int (6)) - (Prims.of_int (243)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (239)) - (Prims.of_int (14)) - (Prims.of_int (239)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string - s.Pulse_Syntax_Base.res)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> - fun x2 -> - fun x3 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "stt_atomic " - (Prims.strcat - uu___3 - " #")) - (Prims.strcat - x " ")) - (Prims.strcat - x1 - " (requires\n")) - (Prims.strcat - x2 - ") (ensures\n")) - (Prims.strcat - x3 ")"))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - uu___3 - (observability_to_string - obs))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___) + (fun uu___4 -> uu___3 uu___1)))) uu___1) | Pulse_Syntax_Base.C_STGhost (inames, s) -> + let uu___ = term_to_string s.Pulse_Syntax_Base.post in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2233,9 +2226,133 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (246)) (Prims.of_int (6)) (Prims.of_int (250)) (Prims.of_int (37))))) - (Obj.magic (term_to_string s.Pulse_Syntax_Base.post)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = term_to_string s.Pulse_Syntax_Base.pre in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (249)) (Prims.of_int (14)) + (Prims.of_int (249)) (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) (Prims.of_int (6)) + (Prims.of_int (250)) (Prims.of_int (37))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = term_to_string inames in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (248)) + (Prims.of_int (14)) + (Prims.of_int (248)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) + (Prims.of_int (6)) + (Prims.of_int (250)) + (Prims.of_int (37))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + term_to_string + s.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (247)) + (Prims.of_int (14)) + (Prims.of_int (247)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + fun x -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "stt_ghost " + (Prims.strcat + uu___10 + " ")) + (Prims.strcat x + " (requires\n")) + (Prims.strcat x1 + ") (ensures\n")) + (Prims.strcat x2 ")"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) + (Prims.of_int (6)) + (Prims.of_int (250)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) + (Prims.of_int (6)) + (Prims.of_int (250)) + (Prims.of_int (37))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> uu___9 uu___7)))) + uu___7) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) + (Prims.of_int (6)) + (Prims.of_int (250)) + (Prims.of_int (37))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (246)) + (Prims.of_int (6)) + (Prims.of_int (250)) + (Prims.of_int (37))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2248,138 +2365,10 @@ let (comp_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (246)) (Prims.of_int (6)) (Prims.of_int (250)) (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (249)) (Prims.of_int (14)) - (Prims.of_int (249)) (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) (Prims.of_int (6)) - (Prims.of_int (250)) (Prims.of_int (37))))) - (Obj.magic - (term_to_string s.Pulse_Syntax_Base.pre)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) - (Prims.of_int (6)) - (Prims.of_int (250)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) - (Prims.of_int (6)) - (Prims.of_int (250)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (248)) - (Prims.of_int (14)) - (Prims.of_int (248)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) - (Prims.of_int (6)) - (Prims.of_int (250)) - (Prims.of_int (37))))) - (Obj.magic - (term_to_string inames)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) - (Prims.of_int (6)) - (Prims.of_int (250)) - (Prims.of_int (37))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (246)) - (Prims.of_int (6)) - (Prims.of_int (250)) - (Prims.of_int (37))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (247)) - (Prims.of_int (14)) - (Prims.of_int (247)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string - s.Pulse_Syntax_Base.res)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 - -> - fun x -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "stt_ghost " - (Prims.strcat - uu___3 - " ")) - (Prims.strcat - x - " (requires\n")) - (Prims.strcat - x1 - ") (ensures\n")) - (Prims.strcat - x2 ")"))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - uu___3 uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___) + (fun uu___4 -> uu___3 uu___1)))) uu___1) let (term_opt_to_string : Pulse_Syntax_Base.term FStar_Pervasives_Native.option -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -2399,6 +2388,7 @@ let (term_list_to_string : = fun sep -> fun t -> + let uu___ = FStar_Tactics_Util.map term_to_string t in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2409,11 +2399,10 @@ let (term_list_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (260)) (Prims.of_int (4)) (Prims.of_int (260)) - (Prims.of_int (46))))) - (Obj.magic (FStar_Tactics_Util.map term_to_string t)) - (fun uu___ -> + (Prims.of_int (46))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_String.concat sep uu___)) + (fun uu___2 -> FStar_String.concat sep uu___1)) let rec (st_term_to_string' : Prims.string -> Pulse_Syntax_Base.st_term -> @@ -2431,7 +2420,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string term in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -2442,15 +2432,15 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string term)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.strcat (Prims.strcat "return_" (Prims.strcat (if insert_eq then "" else "_noeq") - " ")) (Prims.strcat uu___1 ""))))) + " ")) (Prims.strcat uu___2 ""))))) | Pulse_Syntax_Base.Tm_STApp { Pulse_Syntax_Base.head = head; Pulse_Syntax_Base.arg_qual = arg_qual; @@ -2458,7 +2448,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string arg in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -2469,9 +2460,69 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (271)) (Prims.of_int (6)) (Prims.of_int (275)) (Prims.of_int (28))))) - (Obj.magic (term_to_string arg)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = term_to_string head in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (273)) + (Prims.of_int (8)) + (Prims.of_int (273)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat "(" + (Prims.strcat + (if dbg_printing + then "" + else "") "")) + (Prims.strcat uu___5 + " ")) + (Prims.strcat x "")) + (Prims.strcat x1 ")"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (271)) + (Prims.of_int (6)) + (Prims.of_int (275)) + (Prims.of_int (28))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (271)) + (Prims.of_int (6)) + (Prims.of_int (275)) + (Prims.of_int (28))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + uu___4 (qual_to_string arg_qual))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2490,76 +2541,11 @@ let rec (st_term_to_string' : (Prims.of_int (6)) (Prims.of_int (275)) (Prims.of_int (28))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (271)) - (Prims.of_int (6)) - (Prims.of_int (275)) - (Prims.of_int (28))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (271)) - (Prims.of_int (6)) - (Prims.of_int (275)) - (Prims.of_int (28))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (273)) - (Prims.of_int (8)) - (Prims.of_int (273)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string head)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "(" - (Prims.strcat - (if - dbg_printing - then - "" - else "") - "")) - (Prims.strcat - uu___1 - " ")) - (Prims.strcat - x "")) - (Prims.strcat x1 - ")"))))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - uu___1 - (qual_to_string arg_qual))))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_Bind { Pulse_Syntax_Base.binder = binder; Pulse_Syntax_Base.head1 = head; @@ -2567,7 +2553,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = st_term_to_string' level body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -2578,9 +2565,118 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (284)) (Prims.of_int (8)) (Prims.of_int (288)) (Prims.of_int (41))))) - (Obj.magic (st_term_to_string' level body)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = st_term_to_string' level head in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (286)) + (Prims.of_int (10)) + (Prims.of_int (286)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (284)) + (Prims.of_int (8)) + (Prims.of_int (288)) + (Prims.of_int (41))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + binder_to_string binder in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (285)) + (Prims.of_int (10)) + (Prims.of_int (285)) + (Prims.of_int (35))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "let " + (Prims.strcat + uu___8 + " = ")) + (Prims.strcat + x ";\n")) + (Prims.strcat + x1 "")) + (Prims.strcat x2 + ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (284)) + (Prims.of_int (8)) + (Prims.of_int (288)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (284)) + (Prims.of_int (8)) + (Prims.of_int (288)) + (Prims.of_int (41))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 uu___5)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (284)) + (Prims.of_int (8)) + (Prims.of_int (288)) + (Prims.of_int (41))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (284)) + (Prims.of_int (8)) + (Prims.of_int (288)) + (Prims.of_int (41))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2599,120 +2695,11 @@ let rec (st_term_to_string' : (Prims.of_int (8)) (Prims.of_int (288)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (284)) - (Prims.of_int (8)) - (Prims.of_int (288)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (284)) - (Prims.of_int (8)) - (Prims.of_int (288)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (286)) - (Prims.of_int (10)) - (Prims.of_int (286)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (284)) - (Prims.of_int (8)) - (Prims.of_int (288)) - (Prims.of_int (41))))) - (Obj.magic - (st_term_to_string' level - head)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (284)) - (Prims.of_int (8)) - (Prims.of_int (288)) - (Prims.of_int (41))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (284)) - (Prims.of_int (8)) - (Prims.of_int (288)) - (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (285)) - (Prims.of_int (10)) - (Prims.of_int (285)) - (Prims.of_int (35))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - binder)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___3 -> - fun x -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "let " - (Prims.strcat - uu___2 - " = ")) - (Prims.strcat - x ";\n")) - (Prims.strcat - x1 "")) - (Prims.strcat - x2 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_TotBind { Pulse_Syntax_Base.binder1 = binder; Pulse_Syntax_Base.head2 = head; @@ -2720,7 +2707,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = st_term_to_string' level body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -2731,9 +2719,118 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (292)) (Prims.of_int (6)) (Prims.of_int (296)) (Prims.of_int (39))))) - (Obj.magic (st_term_to_string' level body)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = term_to_string head in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (294)) + (Prims.of_int (8)) + (Prims.of_int (294)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (292)) + (Prims.of_int (6)) + (Prims.of_int (296)) + (Prims.of_int (39))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + binder_to_string binder in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (293)) + (Prims.of_int (8)) + (Prims.of_int (293)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "let tot " + (Prims.strcat + uu___8 + " = ")) + (Prims.strcat + x ";\n")) + (Prims.strcat + x1 "")) + (Prims.strcat x2 + ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (292)) + (Prims.of_int (6)) + (Prims.of_int (296)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (292)) + (Prims.of_int (6)) + (Prims.of_int (296)) + (Prims.of_int (39))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 uu___5)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (292)) + (Prims.of_int (6)) + (Prims.of_int (296)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (292)) + (Prims.of_int (6)) + (Prims.of_int (296)) + (Prims.of_int (39))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2752,119 +2849,11 @@ let rec (st_term_to_string' : (Prims.of_int (6)) (Prims.of_int (296)) (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (292)) - (Prims.of_int (6)) - (Prims.of_int (296)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (292)) - (Prims.of_int (6)) - (Prims.of_int (296)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (294)) - (Prims.of_int (8)) - (Prims.of_int (294)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (292)) - (Prims.of_int (6)) - (Prims.of_int (296)) - (Prims.of_int (39))))) - (Obj.magic - (term_to_string head)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (292)) - (Prims.of_int (6)) - (Prims.of_int (296)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (292)) - (Prims.of_int (6)) - (Prims.of_int (296)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (293)) - (Prims.of_int (8)) - (Prims.of_int (293)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - binder)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___3 -> - fun x -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "let tot " - (Prims.strcat - uu___2 - " = ")) - (Prims.strcat - x ";\n")) - (Prims.strcat - x1 "")) - (Prims.strcat - x2 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_Abs { Pulse_Syntax_Base.b = b; Pulse_Syntax_Base.q = q; Pulse_Syntax_Base.ascription = c; @@ -2872,7 +2861,39 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + match c.Pulse_Syntax_Base.elaborated with + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ""))) + | FStar_Pervasives_Native.Some c1 -> + Obj.magic + (Obj.repr + (let uu___1 = comp_to_string c1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (305)) + (Prims.of_int (73)) + (Prims.of_int (305)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Prims.strcat " <: " uu___2)))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -2883,38 +2904,188 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (299)) (Prims.of_int (6)) (Prims.of_int (305)) (Prims.of_int (90))))) - (match c.Pulse_Syntax_Base.elaborated with - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ""))) - | FStar_Pervasives_Native.Some c1 -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (305)) - (Prims.of_int (73)) - (Prims.of_int (305)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic (comp_to_string c1)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat " <: " uu___))))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + st_term_to_string' (indent level) body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (304)) + (Prims.of_int (14)) + (Prims.of_int (304)) + (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = + let uu___7 = + match c.Pulse_Syntax_Base.annotated + with + | FStar_Pervasives_Native.None + -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> ""))) + | FStar_Pervasives_Native.Some + c1 -> + Obj.magic + (Obj.repr + (comp_to_string c1)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (302)) + (Prims.of_int (14)) + (Prims.of_int (302)) + (Prims.of_int (80))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + binder_to_string b in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (301)) + (Prims.of_int (14)) + (Prims.of_int (301)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + fun x -> + fun x1 -> + fun x2 -> + fun x3 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "(fun (" + (Prims.strcat + (qual_to_string + q) "")) + (Prims.strcat + uu___11 + ")\n")) + (Prims.strcat + x + "\n ({\n")) + (Prims.strcat + x1 "")) + (Prims.strcat + x2 "\n}")) + (Prims.strcat + x3 ")"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + uu___10 + uu___8)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 (indent level))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (299)) + (Prims.of_int (6)) + (Prims.of_int (305)) + (Prims.of_int (90))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) + uu___4) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2933,195 +3104,11 @@ let rec (st_term_to_string' : (Prims.of_int (6)) (Prims.of_int (305)) (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (304)) - (Prims.of_int (14)) - (Prims.of_int (304)) - (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (Obj.magic - (st_term_to_string' (indent level) - body)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (302)) - (Prims.of_int (14)) - (Prims.of_int (302)) - (Prims.of_int (80))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (match - c.Pulse_Syntax_Base.annotated - with - | FStar_Pervasives_Native.None - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - ""))) - | FStar_Pervasives_Native.Some - c1 -> - Obj.magic - (Obj.repr - (comp_to_string - c1))) - (fun uu___2 -> - (fun uu___2 - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (299)) - (Prims.of_int (6)) - (Prims.of_int (305)) - (Prims.of_int (90))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (301)) - (Prims.of_int (14)) - (Prims.of_int (301)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - b)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> - fun x2 -> - fun x3 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "(fun (" - (Prims.strcat - (qual_to_string - q) "")) - (Prims.strcat - uu___3 - ")\n")) - (Prims.strcat - x - "\n ({\n")) - (Prims.strcat - x1 "")) - (Prims.strcat - x2 "\n}")) - (Prims.strcat - x3 ")"))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - (indent - level))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_If { Pulse_Syntax_Base.b1 = b; Pulse_Syntax_Base.then_ = then_; Pulse_Syntax_Base.else_ = else_; @@ -3129,236 +3116,80 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) (Prims.of_int (6)) - (Prims.of_int (318)) (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) (Prims.of_int (6)) - (Prims.of_int (318)) (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (317)) (Prims.of_int (8)) - (Prims.of_int (317)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (st_term_to_string' (indent level) else_)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) + (let uu___1 = + let uu___2 = st_term_to_string' (indent level) else_ in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (317)) (Prims.of_int (8)) + (Prims.of_int (317)) (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) (Prims.of_int (6)) + (Prims.of_int (318)) (Prims.of_int (13))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + let uu___8 = + let uu___9 = + st_term_to_string' (indent level) + then_ in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (312)) - (Prims.of_int (8)) - (Prims.of_int (312)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (st_term_to_string' - (indent - level) - then_)) - (fun - uu___2 -> - (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (308)) - (Prims.of_int (6)) - (Prims.of_int (318)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (309)) - (Prims.of_int (8)) - (Prims.of_int (309)) - (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string - b)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (312)) + (Prims.of_int (8)) + (Prims.of_int (312)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + let uu___13 = + let uu___14 = + term_to_string b in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (309)) + (Prims.of_int (8)) + (Prims.of_int (309)) + (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___14) + (fun uu___15 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___16 -> + fun x -> + fun x1 -> fun x2 -> fun x3 -> fun x4 -> @@ -3378,7 +3209,7 @@ let rec (st_term_to_string' : (Prims.strcat "if (" (Prims.strcat - uu___3 + uu___15 ")\n")) (Prims.strcat x "{\n")) @@ -3398,57 +3229,198 @@ let rec (st_term_to_string' : (Prims.strcat x7 "\n")) (Prims.strcat - x8 "}"))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - level)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - (indent - level))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - uu___2 - level)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - level)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 level)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 (indent level))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + x8 "}"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___13) + (fun uu___14 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___15 -> + uu___14 level)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___12) + (fun uu___13 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___14 -> + uu___13 + (indent level))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + uu___12 uu___10)))) + uu___10) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> uu___9 level)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> uu___8 level)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 level)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 (indent level))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) + (Prims.of_int (6)) + (Prims.of_int (318)) + (Prims.of_int (13))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) + uu___3) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) (Prims.of_int (6)) + (Prims.of_int (318)) (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (308)) (Prims.of_int (6)) + (Prims.of_int (318)) (Prims.of_int (13))))) + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) + (fun uu___3 -> uu___2 level)))) | Pulse_Syntax_Base.Tm_Match { Pulse_Syntax_Base.sc = sc; Pulse_Syntax_Base.returns_ = uu___; @@ -3456,7 +3428,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = branches_to_string brs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -3467,9 +3440,38 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (321)) (Prims.of_int (6)) (Prims.of_int (323)) (Prims.of_int (32))))) - (Obj.magic (branches_to_string brs)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = term_to_string sc in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (322)) + (Prims.of_int (8)) + (Prims.of_int (322)) + (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + Prims.strcat + (Prims.strcat "match (" + (Prims.strcat uu___5 + ") with ")) + (Prims.strcat x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3488,42 +3490,16 @@ let rec (st_term_to_string' : (Prims.of_int (6)) (Prims.of_int (323)) (Prims.of_int (32))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (322)) - (Prims.of_int (8)) - (Prims.of_int (322)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic (term_to_string sc)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat "match (" - (Prims.strcat uu___2 - ") with ")) - (Prims.strcat x ""))))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) + (fun uu___5 -> uu___4 uu___2)))) + uu___2))) | Pulse_Syntax_Base.Tm_IntroPure { Pulse_Syntax_Base.p3 = p;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string' (indent level) p in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -3531,324 +3507,223 @@ let rec (st_term_to_string' : (Prims.of_int (328)) (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string' (indent level) p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat - (Prims.strcat "introduce pure (\n" - (Prims.strcat (indent level) "")) - (Prims.strcat uu___ ")"))))) - | Pulse_Syntax_Base.Tm_ElimExists { Pulse_Syntax_Base.p4 = p;_} -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (332)) (Prims.of_int (8)) - (Prims.of_int (332)) (Prims.of_int (26))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat "elim_exists " - (Prims.strcat uu___ ""))))) - | Pulse_Syntax_Base.Tm_IntroExists - { Pulse_Syntax_Base.p5 = p; - Pulse_Syntax_Base.witnesses = witnesses;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (339)) (Prims.of_int (8)) - (Prims.of_int (339)) (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (335)) (Prims.of_int (6)) - (Prims.of_int (339)) (Prims.of_int (43))))) - (Obj.magic (term_list_to_string " " witnesses)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (335)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (335)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (43))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (335)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (43))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (335)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (43))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (337)) - (Prims.of_int (8)) - (Prims.of_int (337)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string' - (indent level) p)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "introduce\n" - (Prims.strcat - (indent - level) "")) - (Prims.strcat - uu___1 - "\n")) - (Prims.strcat - x "with ")) - (Prims.strcat x1 - ""))))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) - | Pulse_Syntax_Base.Tm_While - { Pulse_Syntax_Base.invariant = invariant; - Pulse_Syntax_Base.condition = condition; - Pulse_Syntax_Base.condition_var = uu___; - Pulse_Syntax_Base.body3 = body;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) (Prims.of_int (6)) - (Prims.of_int (349)) (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) (Prims.of_int (6)) - (Prims.of_int (349)) (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (348)) (Prims.of_int (8)) - (Prims.of_int (348)) - (Prims.of_int (48))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (st_term_to_string' (indent level) body)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (345)) - (Prims.of_int (8)) - (Prims.of_int (345)) - (Prims.of_int (34))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (term_to_string - invariant)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (342)) - (Prims.of_int (6)) - (Prims.of_int (349)) - (Prims.of_int (13))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (343)) - (Prims.of_int (8)) - (Prims.of_int (343)) - (Prims.of_int (44))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (st_term_to_string' - level - condition)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> - fun x2 -> - fun x3 -> - fun x4 -> + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___) + (fun uu___1 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Prims.strcat + (Prims.strcat "introduce pure (\n" + (Prims.strcat (indent level) "")) + (Prims.strcat uu___1 ")"))))) + | Pulse_Syntax_Base.Tm_ElimExists { Pulse_Syntax_Base.p4 = p;_} -> + Obj.magic + (Obj.repr + (let uu___ = term_to_string p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (332)) (Prims.of_int (8)) + (Prims.of_int (332)) (Prims.of_int (26))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___) + (fun uu___1 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Prims.strcat "elim_exists " + (Prims.strcat uu___1 ""))))) + | Pulse_Syntax_Base.Tm_IntroExists + { Pulse_Syntax_Base.p5 = p; + Pulse_Syntax_Base.witnesses = witnesses;_} + -> + Obj.magic + (Obj.repr + (let uu___ = term_list_to_string " " witnesses in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (339)) (Prims.of_int (8)) + (Prims.of_int (339)) (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (335)) (Prims.of_int (6)) + (Prims.of_int (339)) (Prims.of_int (43))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = + term_to_string' (indent level) p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (337)) + (Prims.of_int (8)) + (Prims.of_int (337)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "introduce\n" + (Prims.strcat + (indent level) + "")) + (Prims.strcat uu___5 + "\n")) + (Prims.strcat x "with ")) + (Prims.strcat x1 ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (335)) + (Prims.of_int (6)) + (Prims.of_int (339)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (335)) + (Prims.of_int (6)) + (Prims.of_int (339)) + (Prims.of_int (43))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (335)) + (Prims.of_int (6)) + (Prims.of_int (339)) + (Prims.of_int (43))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (335)) + (Prims.of_int (6)) + (Prims.of_int (339)) + (Prims.of_int (43))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) + | Pulse_Syntax_Base.Tm_While + { Pulse_Syntax_Base.invariant = invariant; + Pulse_Syntax_Base.condition = condition; + Pulse_Syntax_Base.condition_var = uu___; + Pulse_Syntax_Base.body3 = body;_} + -> + Obj.magic + (Obj.repr + (let uu___1 = + let uu___2 = st_term_to_string' (indent level) body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (348)) (Prims.of_int (8)) + (Prims.of_int (348)) (Prims.of_int (48))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) (Prims.of_int (6)) + (Prims.of_int (349)) (Prims.of_int (13))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = term_to_string invariant in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (345)) + (Prims.of_int (8)) + (Prims.of_int (345)) + (Prims.of_int (34))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + let uu___11 = + st_term_to_string' level + condition in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (343)) + (Prims.of_int (8)) + (Prims.of_int (343)) + (Prims.of_int (44))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___11) + (fun uu___12 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___13 -> + fun x -> + fun x1 -> + fun x2 -> + fun x3 -> + fun x4 -> fun x5 -> Prims.strcat (Prims.strcat @@ -3859,7 +3734,7 @@ let rec (st_term_to_string' : (Prims.strcat "while (" (Prims.strcat - uu___3 + uu___12 ")\n")) (Prims.strcat x @@ -3873,37 +3748,133 @@ let rec (st_term_to_string' : (Prims.strcat x4 "\n")) (Prims.strcat - x5 "}"))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - level)))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 level)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 (indent level))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + x5 "}"))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + uu___11 level)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + uu___10 uu___8)))) + uu___8) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 level)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 (indent level))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) + (Prims.of_int (6)) + (Prims.of_int (349)) + (Prims.of_int (13))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> uu___5 uu___3)))) + uu___3) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) (Prims.of_int (6)) + (Prims.of_int (349)) (Prims.of_int (13))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (342)) (Prims.of_int (6)) + (Prims.of_int (349)) (Prims.of_int (13))))) + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) + (fun uu___3 -> uu___2 level)))) | Pulse_Syntax_Base.Tm_Par { Pulse_Syntax_Base.pre1 = pre1; Pulse_Syntax_Base.body11 = body1; @@ -3914,7 +3885,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = term_to_string post2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -3924,201 +3896,112 @@ let rec (st_term_to_string' : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (352)) (Prims.of_int (6)) - (Prims.of_int (358)) (Prims.of_int (30))))) - (Obj.magic (term_to_string post2)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (357)) - (Prims.of_int (8)) - (Prims.of_int (357)) - (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (st_term_to_string' level body2)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (356)) - (Prims.of_int (8)) - (Prims.of_int (356)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (term_to_string - pre2)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (355)) - (Prims.of_int (8)) - (Prims.of_int (355)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (term_to_string - post1)) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (358)) (Prims.of_int (30))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = st_term_to_string' level body2 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (357)) + (Prims.of_int (8)) + (Prims.of_int (357)) + (Prims.of_int (40))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = term_to_string pre2 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (356)) + (Prims.of_int (8)) + (Prims.of_int (356)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + term_to_string post1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (355)) + (Prims.of_int (8)) + (Prims.of_int (355)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___9) + (fun uu___10 -> + (fun uu___10 -> + let uu___11 = + let uu___12 = + st_term_to_string' + level body1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (354)) (Prims.of_int (8)) (Prims.of_int (354)) (Prims.of_int (40))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (Obj.magic - (st_term_to_string' - level - body1)) - (fun - uu___4 -> - (fun - uu___4 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (352)) - (Prims.of_int (6)) - (Prims.of_int (358)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic + (FStar_Sealed.seal + (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (352)) (Prims.of_int (6)) (Prims.of_int (358)) (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___12) + (fun uu___13 + -> + (fun + uu___13 + -> + let uu___14 + = + let uu___15 + = + term_to_string + pre1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -4136,13 +4019,14 @@ let rec (st_term_to_string' : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (term_to_string - pre1)) + uu___15) (fun - uu___5 -> + uu___16 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___17 + -> fun x -> fun x1 -> fun x2 -> @@ -4156,7 +4040,7 @@ let rec (st_term_to_string' : (Prims.strcat "par (<" (Prims.strcat - uu___5 + uu___16 "> (")) (Prims.strcat x ") <")) @@ -4167,47 +4051,144 @@ let rec (st_term_to_string' : (Prims.strcat x3 ") <")) (Prims.strcat - x4 ")"))))) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - uu___5 - uu___4)))) - uu___4))) + x4 ")"))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic + uu___14) (fun - uu___4 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> - uu___4 - uu___3)))) - uu___3))) - ( - fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac + uu___16 + -> + uu___15 + uu___13)))) + uu___13) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic + uu___11) + (fun uu___12 + -> + FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + uu___13 + -> + uu___12 + uu___10)))) + uu___10) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + uu___9 uu___7)))) + uu___7) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) + uu___4) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (352)) + (Prims.of_int (6)) + (Prims.of_int (358)) + (Prims.of_int (30))))) + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_Rewrite { Pulse_Syntax_Base.t11 = t1; Pulse_Syntax_Base.t21 = t2; Pulse_Syntax_Base.tac_opt2 = uu___;_} -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string t2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -4218,9 +4199,37 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (361)) (Prims.of_int (7)) (Prims.of_int (363)) (Prims.of_int (27))))) - (Obj.magic (term_to_string t2)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = term_to_string t1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (362)) + (Prims.of_int (8)) + (Prims.of_int (362)) + (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + Prims.strcat + (Prims.strcat "rewrite " + (Prims.strcat uu___5 " ")) + (Prims.strcat x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4239,38 +4248,11 @@ let rec (st_term_to_string' : (Prims.of_int (7)) (Prims.of_int (363)) (Prims.of_int (27))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (362)) - (Prims.of_int (8)) - (Prims.of_int (362)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic (term_to_string t1)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat "rewrite " - (Prims.strcat uu___2 - " ")) - (Prims.strcat x ""))))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) + (fun uu___5 -> uu___4 uu___2)))) + uu___2))) | Pulse_Syntax_Base.Tm_WithLocal { Pulse_Syntax_Base.binder2 = binder; Pulse_Syntax_Base.initializer1 = initializer1; @@ -4278,7 +4260,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = st_term_to_string' level body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -4289,140 +4272,141 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (366)) (Prims.of_int (6)) (Prims.of_int (370)) (Prims.of_int (39))))) - (Obj.magic (st_term_to_string' level body)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (368)) - (Prims.of_int (8)) - (Prims.of_int (368)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (Obj.magic - (term_to_string initializer1)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (366)) - (Prims.of_int (6)) - (Prims.of_int (370)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (367)) - (Prims.of_int (8)) - (Prims.of_int (367)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - binder)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - ( - fun - uu___3 -> - fun x -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = term_to_string initializer1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (368)) + (Prims.of_int (8)) + (Prims.of_int (368)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + binder_to_string binder in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (367)) + (Prims.of_int (8)) + (Prims.of_int (367)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat "let mut " (Prims.strcat - uu___2 + uu___8 " = ")) - (Prims.strcat + (Prims.strcat x ";\n")) - (Prims.strcat - x1 "")) - (Prims.strcat - x2 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> + (Prims.strcat + x1 "")) + (Prims.strcat x2 + ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 uu___5)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (366)) + (Prims.of_int (6)) + (Prims.of_int (370)) + (Prims.of_int (39))))) + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_WithLocalArray { Pulse_Syntax_Base.binder3 = binder; Pulse_Syntax_Base.initializer2 = initializer1; @@ -4431,7 +4415,8 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = st_term_to_string' level body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -4442,9 +4427,172 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (373)) (Prims.of_int (6)) (Prims.of_int (378)) (Prims.of_int (39))))) - (Obj.magic (st_term_to_string' level body)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = + let uu___4 = term_to_string length in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (376)) + (Prims.of_int (8)) + (Prims.of_int (376)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + term_to_string initializer1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (375)) + (Prims.of_int (8)) + (Prims.of_int (375)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (Obj.magic uu___7) + (fun uu___8 -> + (fun uu___8 -> + let uu___9 = + let uu___10 = + binder_to_string + binder in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (374)) + (Prims.of_int (8)) + (Prims.of_int (374)) + (Prims.of_int (33))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> + fun x -> + fun x1 -> + fun x2 -> + fun x3 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat + "let mut " + (Prims.strcat + uu___11 + " = [| ")) + (Prims.strcat + x "; ")) + (Prims.strcat + x1 + " |]\n")) + (Prims.strcat + x2 "")) + (Prims.strcat + x3 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (Obj.magic uu___9) + (fun uu___10 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___11 -> + uu___10 + uu___8)))) + uu___8) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 uu___5)))) + uu___5) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (373)) + (Prims.of_int (6)) + (Prims.of_int (378)) + (Prims.of_int (39))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> uu___4 level)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4463,174 +4611,11 @@ let rec (st_term_to_string' : (Prims.of_int (6)) (Prims.of_int (378)) (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (376)) - (Prims.of_int (8)) - (Prims.of_int (376)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (Obj.magic - (term_to_string length)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (375)) - (Prims.of_int (8)) - (Prims.of_int (375)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (Obj.magic - (term_to_string - initializer1)) - (fun uu___2 -> - (fun uu___2 - -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (373)) - (Prims.of_int (6)) - (Prims.of_int (378)) - (Prims.of_int (39))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (374)) - (Prims.of_int (8)) - (Prims.of_int (374)) - (Prims.of_int (33))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - binder)) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - fun x -> - fun x1 -> - fun x2 -> - fun x3 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "let mut " - (Prims.strcat - uu___3 - " = [| ")) - (Prims.strcat - x "; ")) - (Prims.strcat - x1 - " |]\n")) - (Prims.strcat - x2 "")) - (Prims.strcat - x3 ""))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 level)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_Admit { Pulse_Syntax_Base.ctag = ctag; Pulse_Syntax_Base.u1 = u; Pulse_Syntax_Base.typ = typ; @@ -4638,7 +4623,40 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + match post with + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ""))) + | FStar_Pervasives_Native.Some post1 -> + Obj.magic + (Obj.repr + (let uu___1 = term_to_string post1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (390)) + (Prims.of_int (38)) + (Prims.of_int (390)) + (Prims.of_int (59))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Prims.strcat " " + (Prims.strcat uu___2 ""))))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -4649,39 +4667,54 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (381)) (Prims.of_int (6)) (Prims.of_int (390)) (Prims.of_int (60))))) - (match post with - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ""))) - | FStar_Pervasives_Native.Some post1 -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (390)) - (Prims.of_int (38)) - (Prims.of_int (390)) - (Prims.of_int (59))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic (term_to_string post1)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat " " - (Prims.strcat uu___ "")))))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = term_to_string typ in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (387)) + (Prims.of_int (8)) + (Prims.of_int (387)) + (Prims.of_int (28))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + fun x -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat "" + (Prims.strcat + (match ctag with + | Pulse_Syntax_Base.STT + -> "stt_admit" + | Pulse_Syntax_Base.STT_Atomic + -> + "stt_atomic_admit" + | Pulse_Syntax_Base.STT_Ghost + -> + "stt_ghost_admit") + "<")) + (Prims.strcat + (universe_to_string + Prims.int_zero u) + "> ")) + (Prims.strcat uu___4 "")) + (Prims.strcat x ""))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4694,62 +4727,17 @@ let rec (st_term_to_string' : (Prims.of_int (60))))) (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (381)) - (Prims.of_int (6)) - (Prims.of_int (390)) - (Prims.of_int (60))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (387)) - (Prims.of_int (8)) - (Prims.of_int (387)) - (Prims.of_int (28))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic (term_to_string typ)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat "" - (Prims.strcat - (match ctag - with - | Pulse_Syntax_Base.STT - -> - "stt_admit" - | Pulse_Syntax_Base.STT_Atomic - -> - "stt_atomic_admit" - | Pulse_Syntax_Base.STT_Ghost - -> - "stt_ghost_admit") - "<")) - (Prims.strcat - (universe_to_string - Prims.int_zero - u) "> ")) - (Prims.strcat uu___1 - "")) - (Prims.strcat x ""))))) - (fun uu___1 -> + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (381)) + (Prims.of_int (6)) + (Prims.of_int (390)) + (Prims.of_int (60))))) + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) + (fun uu___4 -> uu___3 uu___1)))) + uu___1))) | Pulse_Syntax_Base.Tm_Unreachable -> Obj.magic (Obj.repr @@ -4762,7 +4750,65 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + match binders with + | [] -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ""))) + | uu___1 -> + Obj.magic + (Obj.repr + (let uu___2 = + let uu___3 = + FStar_Tactics_Util.map binder_to_string + binders in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (398)) + (Prims.of_int (53)) + (Prims.of_int (398)) + (Prims.of_int (85))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (398)) + (Prims.of_int (34)) + (Prims.of_int (398)) + (Prims.of_int (86))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_String.concat " " uu___4)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (398)) + (Prims.of_int (34)) + (Prims.of_int (398)) + (Prims.of_int (86))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat "with " + (Prims.strcat uu___3 "."))))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -4773,64 +4819,21 @@ let rec (st_term_to_string' : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (399)) (Prims.of_int (8)) (Prims.of_int (424)) (Prims.of_int (36))))) - (match binders with - | [] -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ""))) - | uu___ -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (398)) - (Prims.of_int (34)) - (Prims.of_int (398)) - (Prims.of_int (86))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (398)) - (Prims.of_int (53)) - (Prims.of_int (398)) - (Prims.of_int (85))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (398)) - (Prims.of_int (34)) - (Prims.of_int (398)) - (Prims.of_int (86))))) - (Obj.magic - (FStar_Tactics_Util.map - binder_to_string binders)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_String.concat " " - uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat "with " - (Prims.strcat uu___1 ".")))))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun with_prefix -> + let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun uu___3 -> + match uu___3 with + | FStar_Pervasives_Native.None -> "" + | FStar_Pervasives_Native.Some l -> + Prims.strcat " [" + (Prims.strcat + (FStar_String.concat "; " l) + "]"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -4849,216 +4852,137 @@ let rec (st_term_to_string' : (Prims.of_int (8)) (Prims.of_int (424)) (Prims.of_int (36))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun uu___1 -> - match uu___1 with - | FStar_Pervasives_Native.None -> - "" - | FStar_Pervasives_Native.Some l -> - Prims.strcat " [" - (Prims.strcat - (FStar_String.concat "; " - l) "]"))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun names_to_string -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (405)) - (Prims.of_int (8)) - (Prims.of_int (421)) - (Prims.of_int (54))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (403)) - (Prims.of_int (8)) - (Prims.of_int (424)) - (Prims.of_int (36))))) - (match hint_type with - | Pulse_Syntax_Base.ASSERT - { - Pulse_Syntax_Base.p = p;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (406)) - (Prims.of_int (36)) - (Prims.of_int (406)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (406)) - (Prims.of_int (26)) - (Prims.of_int (406)) - (Prims.of_int (52))))) - (Obj.magic - (term_to_string - p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ("assert", - uu___))))) - | Pulse_Syntax_Base.UNFOLD - { - Pulse_Syntax_Base.names1 - = names; - Pulse_Syntax_Base.p2 = p;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (407)) - (Prims.of_int (77)) - (Prims.of_int (407)) - (Prims.of_int (93))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (407)) - (Prims.of_int (33)) - (Prims.of_int (407)) - (Prims.of_int (93))))) - (Obj.magic - (term_to_string - p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ((Prims.strcat - "unfold" - (Prims.strcat + let uu___2 = + match hint_type with + | Pulse_Syntax_Base.ASSERT + { Pulse_Syntax_Base.p = p;_} -> + Obj.magic + (Obj.repr + (let uu___3 = + term_to_string p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (406)) + (Prims.of_int (36)) + (Prims.of_int (406)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (406)) + (Prims.of_int (26)) + (Prims.of_int (406)) + (Prims.of_int (52))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + ("assert", + uu___4))))) + | Pulse_Syntax_Base.UNFOLD + { + Pulse_Syntax_Base.names1 = + names; + Pulse_Syntax_Base.p2 = p;_} + -> + Obj.magic + (Obj.repr + (let uu___3 = + term_to_string p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (407)) + (Prims.of_int (77)) + (Prims.of_int (407)) + (Prims.of_int (93))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (407)) + (Prims.of_int (33)) + (Prims.of_int (407)) + (Prims.of_int (93))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + ((Prims.strcat + "unfold" + (Prims.strcat (names_to_string names) "")), - uu___))))) - | Pulse_Syntax_Base.FOLD - { - Pulse_Syntax_Base.names = - names; - Pulse_Syntax_Base.p1 = p;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (408)) - (Prims.of_int (73)) - (Prims.of_int (408)) - (Prims.of_int (89))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (408)) - (Prims.of_int (31)) - (Prims.of_int (408)) - (Prims.of_int (89))))) - (Obj.magic - (term_to_string - p)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ((Prims.strcat - "fold" - (Prims.strcat + uu___4))))) + | Pulse_Syntax_Base.FOLD + { + Pulse_Syntax_Base.names = + names; + Pulse_Syntax_Base.p1 = p;_} + -> + Obj.magic + (Obj.repr + (let uu___3 = + term_to_string p in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (408)) + (Prims.of_int (73)) + (Prims.of_int (408)) + (Prims.of_int (89))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (408)) + (Prims.of_int (31)) + (Prims.of_int (408)) + (Prims.of_int (89))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + ((Prims.strcat + "fold" + (Prims.strcat (names_to_string names) "")), - uu___))))) - | Pulse_Syntax_Base.RENAME - { - Pulse_Syntax_Base.pairs = - pairs; - Pulse_Syntax_Base.goal = - goal; - Pulse_Syntax_Base.tac_opt - = uu___;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (410)) - (Prims.of_int (10)) - (Prims.of_int (414)) - (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (410)) - (Prims.of_int (10)) - (Prims.of_int (417)) - (Prims.of_int (60))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (411)) - (Prims.of_int (12)) - (Prims.of_int (414)) - (Prims.of_int (21))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (412)) - (Prims.of_int (14)) - (Prims.of_int (414)) - (Prims.of_int (20))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (411)) - (Prims.of_int (12)) - (Prims.of_int (414)) - (Prims.of_int (21))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun - uu___1 -> - match uu___1 - with - | - (x, y) -> - FStar_Tactics_Effect.tac_bind + uu___4))))) + | Pulse_Syntax_Base.RENAME + { + Pulse_Syntax_Base.pairs = + pairs; + Pulse_Syntax_Base.goal = goal; + Pulse_Syntax_Base.tac_opt = + uu___3;_} + -> + Obj.magic + (Obj.repr + (let uu___4 = + let uu___5 = + let uu___6 = + FStar_Tactics_Util.map + (fun uu___7 -> + match uu___7 + with + | (x, y) -> + let uu___8 + = + term_to_string + y in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -5076,32 +5000,18 @@ let rec (st_term_to_string' : (Prims.of_int (413)) (Prims.of_int (87))))) (Obj.magic - (term_to_string - y)) + uu___8) (fun - uu___2 -> + uu___9 -> (fun - uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (413)) - (Prims.of_int (31)) - (Prims.of_int (413)) - (Prims.of_int (87))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (413)) - (Prims.of_int (31)) - (Prims.of_int (413)) - (Prims.of_int (87))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9 -> + let uu___10 + = + let uu___11 + = + term_to_string + x in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -5119,85 +5029,144 @@ let rec (st_term_to_string' : (Prims.of_int (124)) (Prims.of_int (44))))) (Obj.magic - (term_to_string - x)) + uu___11) (fun - uu___3 -> + uu___12 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___13 + -> fun x1 -> Prims.strcat (Prims.strcat "" (Prims.strcat - uu___3 + uu___12 " as ")) (Prims.strcat - x1 ""))))) - (fun - uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___4 -> - uu___3 - uu___2)))) - uu___2)) - pairs)) - (fun - uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - FStar_String.concat - ", " - uu___1)))) - (fun uu___1 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___2 -> - Prims.strcat - "rewrite each " - (Prims.strcat - uu___1 ""))))) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (415)) - (Prims.of_int (12)) - (Prims.of_int (417)) - (Prims.of_int (60))))) + (Prims.of_int (413)) + (Prims.of_int (31)) + (Prims.of_int (413)) + (Prims.of_int (87))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (410)) - (Prims.of_int (10)) - (Prims.of_int (417)) - (Prims.of_int (60))))) - (match goal - with - | - FStar_Pervasives_Native.None + (Prims.of_int (413)) + (Prims.of_int (31)) + (Prims.of_int (413)) + (Prims.of_int (87))))) + (Obj.magic + uu___10) + (fun + uu___11 -> - Obj.magic - (Obj.repr + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> + uu___11 + uu___9)))) + uu___9)) + pairs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (412)) + (Prims.of_int (14)) + (Prims.of_int (414)) + (Prims.of_int (20))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (411)) + (Prims.of_int (12)) + (Prims.of_int (414)) + (Prims.of_int (21))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_String.concat + ", " + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (411)) + (Prims.of_int (12)) + (Prims.of_int (414)) + (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Prims.strcat + "rewrite each " + (Prims.strcat + uu___6 ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (410)) + (Prims.of_int (10)) + (Prims.of_int (414)) + (Prims.of_int (21))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (410)) + (Prims.of_int (10)) + (Prims.of_int (417)) + (Prims.of_int (60))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + match goal with + | FStar_Pervasives_Native.None + -> + Obj.magic + ( + Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___2 -> + uu___7 -> ""))) - | - FStar_Pervasives_Native.Some - t2 -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind + | FStar_Pervasives_Native.Some + t2 -> + Obj.magic + ( + Obj.repr + (let uu___7 + = + term_to_string + t2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -5215,98 +5184,83 @@ let rec (st_term_to_string' : (Prims.of_int (611)) (Prims.of_int (31))))) (Obj.magic - (term_to_string - t2)) + uu___7) (fun - uu___2 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___9 -> Prims.strcat " in " (Prims.strcat - uu___2 "")))))) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - (uu___1, - uu___2))))) - uu___1))) - | Pulse_Syntax_Base.REWRITE - { - Pulse_Syntax_Base.t1 = - t11; - Pulse_Syntax_Base.t2 = t2; - Pulse_Syntax_Base.tac_opt1 - = uu___;_} - -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) - (Prims.of_int (10)) - (Prims.of_int (419)) - (Prims.of_int (76))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) - (Prims.of_int (10)) - (Prims.of_int (419)) - (Prims.of_int (80))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) - (Prims.of_int (57)) - (Prims.of_int (419)) - (Prims.of_int (76))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) - (Prims.of_int (10)) - (Prims.of_int (419)) - (Prims.of_int (76))))) - (Obj.magic - (term_to_string - t2)) - (fun uu___1 - -> - (fun - uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic + uu___8 ""))))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) - (Prims.of_int (10)) - (Prims.of_int (419)) - (Prims.of_int (76))))) - (FStar_Sealed.seal - (Obj.magic + (Prims.of_int (415)) + (Prims.of_int (12)) + (Prims.of_int (417)) + (Prims.of_int (60))))) + (FStar_Sealed.seal + ( + Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (419)) + (Prims.of_int (410)) (Prims.of_int (10)) - (Prims.of_int (419)) - (Prims.of_int (76))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal + (Prims.of_int (417)) + (Prims.of_int (60))))) + (Obj.magic + uu___6) + (fun uu___7 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___8 -> + (uu___5, + uu___7))))) + uu___5))) + | Pulse_Syntax_Base.REWRITE + { Pulse_Syntax_Base.t1 = t11; + Pulse_Syntax_Base.t2 = t2; + Pulse_Syntax_Base.tac_opt1 = + uu___3;_} + -> + Obj.magic + (Obj.repr + (let uu___4 = + let uu___5 = + term_to_string t2 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (57)) + (Prims.of_int (419)) + (Prims.of_int (76))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (10)) + (Prims.of_int (419)) + (Prims.of_int (76))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun uu___6 -> + let uu___7 = + let uu___8 = + term_to_string + t11 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -5314,7 +5268,7 @@ let rec (st_term_to_string' : (Prims.of_int (37)) (Prims.of_int (419)) (Prims.of_int (56))))) - (FStar_Sealed.seal + (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "FStar.Printf.fst" @@ -5322,54 +5276,113 @@ let rec (st_term_to_string' : (Prims.of_int (8)) (Prims.of_int (124)) (Prims.of_int (44))))) - (Obj.magic - (term_to_string - t11)) - (fun - uu___2 -> + (Obj.magic + uu___8) + (fun uu___9 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___10 + -> fun x -> Prims.strcat (Prims.strcat "rewrite " (Prims.strcat - uu___2 + uu___9 " as ")) (Prims.strcat - x ""))))) - (fun - uu___2 -> + x ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (10)) + (Prims.of_int (419)) + (Prims.of_int (76))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (10)) + (Prims.of_int (419)) + (Prims.of_int (76))))) + (Obj.magic + uu___7) + (fun + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - (uu___1, - ""))))) - | Pulse_Syntax_Base.WILD -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - ("_", "")))) - | Pulse_Syntax_Base.SHOW_PROOF_STATE - uu___ -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - ("show_proof_state", - ""))))) - (fun uu___ -> - (fun uu___ -> - match uu___ with + uu___9 -> + uu___8 + uu___6)))) + uu___6) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (10)) + (Prims.of_int (419)) + (Prims.of_int (76))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (419)) + (Prims.of_int (10)) + (Prims.of_int (419)) + (Prims.of_int (80))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + (uu___5, ""))))) + | Pulse_Syntax_Base.WILD -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + ("_", "")))) + | Pulse_Syntax_Base.SHOW_PROOF_STATE + uu___3 -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + ("show_proof_state", + "")))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (405)) + (Prims.of_int (8)) + (Prims.of_int (421)) + (Prims.of_int (54))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (403)) + (Prims.of_int (8)) + (Prims.of_int (424)) + (Prims.of_int (36))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + match uu___3 with | (ht, p) -> + let uu___4 = + st_term_to_string' + level t1 in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5388,12 +5401,10 @@ let rec (st_term_to_string' : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (st_term_to_string' - level t1)) - (fun uu___1 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 + (fun uu___6 -> Prims.strcat (Prims.strcat @@ -5408,8 +5419,8 @@ let rec (st_term_to_string' : (Prims.strcat p "; ")) (Prims.strcat - uu___1 ""))))) - uu___))) uu___))) uu___))) + uu___5 ""))))) + uu___3))) uu___2))) uu___1))) | Pulse_Syntax_Base.Tm_WithInv { Pulse_Syntax_Base.name1 = name; Pulse_Syntax_Base.body6 = body; @@ -5417,262 +5428,261 @@ let rec (st_term_to_string' : -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (430)) (Prims.of_int (8)) - (Prims.of_int (436)) (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) (Prims.of_int (6)) - (Prims.of_int (436)) (Prims.of_int (32))))) - (match returns_inv with - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> ""))) - | FStar_Pervasives_Native.Some (b, t1, is) -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (436)) - (Prims.of_int (12)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (Obj.magic (term_to_string is)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (435)) - (Prims.of_int (12)) - (Prims.of_int (435)) - (Prims.of_int (30))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (Obj.magic - (term_to_string t1)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (433)) - (Prims.of_int (10)) - (Prims.of_int (436)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (434)) - (Prims.of_int (12)) - (Prims.of_int (434)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (binder_to_string - b)) - (fun - uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - fun x -> - fun x1 -> - Prims.strcat + (let uu___ = + match returns_inv with + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> ""))) + | FStar_Pervasives_Native.Some (b, t1, is) -> + Obj.magic + (Obj.repr + (let uu___1 = term_to_string is in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (436)) + (Prims.of_int (12)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = term_to_string t1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (435)) + (Prims.of_int (12)) + (Prims.of_int (435)) + (Prims.of_int (30))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + binder_to_string b in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (434)) + (Prims.of_int (12)) + (Prims.of_int (434)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + fun x -> + fun x1 -> + Prims.strcat (Prims.strcat (Prims.strcat "\nreturns " (Prims.strcat - uu___2 + uu___8 "\nensures ")) (Prims.strcat x "\nopens ")) (Prims.strcat - x1 ""))))) - (fun uu___2 - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - uu___2 - uu___1)))) - uu___1))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - uu___1 uu___)))) uu___)))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) - (Prims.of_int (6)) - (Prims.of_int (436)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) - (Prims.of_int (6)) - (Prims.of_int (436)) - (Prims.of_int (32))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (429)) - (Prims.of_int (8)) - (Prims.of_int (429)) - (Prims.of_int (39))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) - (Prims.of_int (6)) - (Prims.of_int (436)) - (Prims.of_int (32))))) - (Obj.magic - (st_term_to_string' level body)) - (fun uu___1 -> - (fun uu___1 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) - (Prims.of_int (6)) - (Prims.of_int (436)) - (Prims.of_int (32))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (427)) - (Prims.of_int (6)) - (Prims.of_int (436)) - (Prims.of_int (32))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (428)) - (Prims.of_int (8)) - (Prims.of_int (428)) - (Prims.of_int (29))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (term_to_string - name)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - fun x1 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "with_inv " - (Prims.strcat - uu___2 - " ")) - (Prims.strcat - x " ")) - (Prims.strcat - x1 ""))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - uu___2 uu___1)))) - uu___1))) - (fun uu___1 -> + x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + uu___7 uu___5)))) + uu___5) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (433)) + (Prims.of_int (10)) + (Prims.of_int (436)) + (Prims.of_int (31))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + uu___4 uu___2)))) + uu___2))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (430)) (Prims.of_int (8)) + (Prims.of_int (436)) (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) (Prims.of_int (6)) + (Prims.of_int (436)) (Prims.of_int (32))))) + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = st_term_to_string' level body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (429)) + (Prims.of_int (8)) + (Prims.of_int (429)) + (Prims.of_int (39))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) + (Prims.of_int (6)) + (Prims.of_int (436)) + (Prims.of_int (32))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = term_to_string name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (428)) + (Prims.of_int (8)) + (Prims.of_int (428)) + (Prims.of_int (29))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + "with_inv " + (Prims.strcat + uu___7 " ")) + (Prims.strcat x + " ")) + (Prims.strcat x1 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) + (Prims.of_int (6)) + (Prims.of_int (436)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) + (Prims.of_int (6)) + (Prims.of_int (436)) + (Prims.of_int (32))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> uu___6 uu___4)))) + uu___4) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) + (Prims.of_int (6)) + (Prims.of_int (436)) + (Prims.of_int (32))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (427)) + (Prims.of_int (6)) + (Prims.of_int (436)) + (Prims.of_int (32))))) + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___)))) - uu___1 uu___ + (fun uu___4 -> uu___3 uu___1)))) + uu___1)))) uu___1 uu___ and (branches_to_string : (Pulse_Syntax_Base.pattern * Pulse_Syntax_Base.st_term) Prims.list -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -5686,7 +5696,8 @@ and (branches_to_string : | b::bs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = branch_to_string b in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -5697,9 +5708,10 @@ and (branches_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (441)) (Prims.of_int (13)) (Prims.of_int (441)) (Prims.of_int (55))))) - (Obj.magic (branch_to_string b)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = branches_to_string bs in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5717,16 +5729,18 @@ and (branches_to_string : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (branches_to_string bs)) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat uu___ uu___1)))) - uu___)))) uu___ + (fun uu___4 -> Prims.strcat uu___1 uu___3)))) + uu___1)))) uu___ and (branch_to_string : (Pulse_Syntax_Base.pattern * Pulse_Syntax_Base.st_term) -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun br -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> br)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -5737,12 +5751,12 @@ and (branch_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (443)) (Prims.of_int (35)) (Prims.of_int (447)) - (Prims.of_int (29))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> br)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Prims.of_int (29))))) (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with | (pat, e) -> + let uu___2 = st_term_to_string' "" e in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5755,9 +5769,36 @@ and (branch_to_string : (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" (Prims.of_int (445)) (Prims.of_int (2)) (Prims.of_int (447)) (Prims.of_int (29))))) - (Obj.magic (st_term_to_string' "" e)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = pattern_to_string pat in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (446)) + (Prims.of_int (4)) + (Prims.of_int (446)) + (Prims.of_int (27))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + fun x -> + Prims.strcat + (Prims.strcat "{ " + (Prims.strcat uu___6 " -> ")) + (Prims.strcat x " }"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -5776,38 +5817,11 @@ and (branch_to_string : (Prims.of_int (2)) (Prims.of_int (447)) (Prims.of_int (29))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (446)) - (Prims.of_int (4)) - (Prims.of_int (446)) - (Prims.of_int (27))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic (pattern_to_string pat)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat "{ " - (Prims.strcat uu___2 - " -> ")) - (Prims.strcat x " }"))))) - (fun uu___2 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) uu___1))) - uu___) + (fun uu___6 -> uu___5 uu___3)))) uu___3))) + uu___1) and (pattern_to_string : Pulse_Syntax_Base.pattern -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -5818,7 +5832,28 @@ and (pattern_to_string : | Pulse_Syntax_Base.Pat_Cons (fv, pats) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = + FStar_Tactics_Util.map + (fun uu___2 -> + match uu___2 with + | (p1, uu___3) -> pattern_to_string p1) pats in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (454)) (Prims.of_int (25)) + (Prims.of_int (454)) (Prims.of_int (73))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (454)) (Prims.of_int (6)) + (Prims.of_int (454)) (Prims.of_int (74))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> FStar_String.concat " " uu___2)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -5829,38 +5864,16 @@ and (pattern_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (454)) (Prims.of_int (25)) - (Prims.of_int (454)) (Prims.of_int (73))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (454)) (Prims.of_int (6)) - (Prims.of_int (454)) (Prims.of_int (74))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun uu___ -> - match uu___ with - | (p1, uu___1) -> pattern_to_string p1) - pats)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_String.concat " " uu___)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> Prims.strcat (Prims.strcat "(" (Prims.strcat (FStar_String.concat "." fv.Pulse_Syntax_Base.fv_name) " ")) - (Prims.strcat uu___ ")"))))) + (Prims.strcat uu___1 ")"))))) | Pulse_Syntax_Base.Pat_Constant c -> Obj.magic (Obj.repr @@ -5935,7 +5948,8 @@ let (tag_of_comp : | Pulse_Syntax_Base.C_STAtomic (i, obs, uu___) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = term_to_string i in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" @@ -5946,14 +5960,14 @@ let (tag_of_comp : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (term_to_string i)) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.strcat (Prims.strcat "" (Prims.strcat (observability_to_string obs) - " ")) (Prims.strcat uu___1 ""))))) + " ")) (Prims.strcat uu___2 ""))))) | Pulse_Syntax_Base.C_STGhost (uu___, uu___1) -> Obj.magic (Obj.repr @@ -6038,265 +6052,236 @@ let (decl_to_string : Pulse_Syntax_Base.bs = bs; Pulse_Syntax_Base.comp = uu___; Pulse_Syntax_Base.meas = uu___1; Pulse_Syntax_Base.body7 = body;_} -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (568)) (Prims.of_int (12)) - (Prims.of_int (571)) (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) - (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (569)) (Prims.of_int (5)) - (Prims.of_int (571)) (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) - (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (569)) (Prims.of_int (32)) - (Prims.of_int (571)) (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + FStar_Tactics_Util.map + (fun uu___8 -> + match uu___8 with + | (uu___9, b, uu___10) -> binder_to_string b) bs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (570)) (Prims.of_int (23)) + (Prims.of_int (570)) (Prims.of_int (71))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (570)) (Prims.of_int (5)) + (Prims.of_int (570)) (Prims.of_int (71))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> FStar_String.concat " " uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (570)) (Prims.of_int (5)) + (Prims.of_int (570)) (Prims.of_int (71))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (570)) (Prims.of_int (5)) + (Prims.of_int (571)) (Prims.of_int (42))))) + (Obj.magic uu___6) + (fun uu___7 -> + (fun uu___7 -> + let uu___8 = + let uu___9 = + let uu___10 = st_term_to_string body in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (571)) + (Prims.of_int (14)) + (Prims.of_int (571)) + (Prims.of_int (36))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___10) + (fun uu___11 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___12 -> Prims.strcat uu___11 "}")) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (570)) (Prims.of_int (5)) + (Prims.of_int (571)) (Prims.of_int (14)) (Prims.of_int (571)) (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (570)) - (Prims.of_int (5)) - (Prims.of_int (570)) - (Prims.of_int (71))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (570)) - (Prims.of_int (5)) - (Prims.of_int (571)) - (Prims.of_int (42))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (570)) - (Prims.of_int (23)) - (Prims.of_int (570)) - (Prims.of_int (71))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (570)) - (Prims.of_int (5)) - (Prims.of_int (570)) - (Prims.of_int (71))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun uu___2 -> - match uu___2 with - | (uu___3, b, uu___4) -> - binder_to_string b) bs)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_String.concat " " - uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (571)) - (Prims.of_int (6)) - (Prims.of_int (571)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (571)) - (Prims.of_int (14)) - (Prims.of_int (571)) - (Prims.of_int (42))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (571)) - (Prims.of_int (14)) - (Prims.of_int (571)) - (Prims.of_int (36))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (st_term_to_string - body)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Prims.strcat - uu___3 "}")))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Prims.strcat " { " - uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - Prims.strcat uu___2 - uu___3)))) uu___2))) - (fun uu___2 -> + (Obj.magic uu___9) + (fun uu___10 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> Prims.strcat " " uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat - (FStar_Pervasives_Native.fst - (FStar_Reflection_V2_Builtins.inspect_ident - id)) uu___2)))) - (fun uu___2 -> + (fun uu___11 -> Prims.strcat " { " uu___10)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Syntax.Printer.fst" + (Prims.of_int (571)) (Prims.of_int (6)) + (Prims.of_int (571)) + (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> Prims.strcat uu___7 uu___9)))) + uu___7) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (570)) (Prims.of_int (5)) + (Prims.of_int (571)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat (if isrec then "rec " else "") uu___2)))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> Prims.strcat "fn " uu___2)) - | Pulse_Syntax_Base.FnDecl - { Pulse_Syntax_Base.id1 = id; Pulse_Syntax_Base.bs1 = bs; - Pulse_Syntax_Base.comp1 = uu___;_} - -> + (fun uu___7 -> Prims.strcat " " uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (569)) (Prims.of_int (32)) + (Prims.of_int (571)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + Prims.strcat + (FStar_Pervasives_Native.fst + (FStar_Reflection_V2_Builtins.inspect_ident id)) + uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (569)) (Prims.of_int (5)) + (Prims.of_int (571)) (Prims.of_int (42))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + Prims.strcat (if isrec then "rec " else "") uu___4)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (574)) (Prims.of_int (4)) - (Prims.of_int (575)) (Prims.of_int (70))))) + (Prims.of_int (568)) (Prims.of_int (12)) + (Prims.of_int (571)) (Prims.of_int (42))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (31))))) (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> Prims.strcat "fn " uu___3)) + | Pulse_Syntax_Base.FnDecl + { Pulse_Syntax_Base.id1 = id; Pulse_Syntax_Base.bs1 = bs; + Pulse_Syntax_Base.comp1 = uu___;_} + -> + let uu___1 = + let uu___2 = + let uu___3 = + let uu___4 = + FStar_Tactics_Util.map + (fun uu___5 -> + match uu___5 with + | (uu___6, b, uu___7) -> binder_to_string b) bs in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (574)) (Prims.of_int (31)) + (Prims.of_int (575)) (Prims.of_int (22)) (Prims.of_int (575)) (Prims.of_int (70))))) (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) - (Prims.of_int (19)) (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" - (Prims.of_int (575)) (Prims.of_int (4)) - (Prims.of_int (575)) (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) (Prims.of_int (19)) - (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (575)) (Prims.of_int (22)) - (Prims.of_int (575)) (Prims.of_int (70))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Syntax.Printer.fst" - (Prims.of_int (575)) (Prims.of_int (4)) - (Prims.of_int (575)) (Prims.of_int (70))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun uu___1 -> - match uu___1 with - | (uu___2, b, uu___3) -> - binder_to_string b) bs)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_String.concat " " uu___1)))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat " " uu___1)))) - (fun uu___1 -> + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (575)) (Prims.of_int (4)) + (Prims.of_int (575)) (Prims.of_int (70))))) + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - Prims.strcat - (FStar_Pervasives_Native.fst - (FStar_Reflection_V2_Builtins.inspect_ident id)) - uu___1)))) - (fun uu___1 -> + (fun uu___6 -> FStar_String.concat " " uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (575)) (Prims.of_int (4)) + (Prims.of_int (575)) (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> Prims.strcat " " uu___4)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (574)) (Prims.of_int (31)) + (Prims.of_int (575)) (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Prims.strcat + (FStar_Pervasives_Native.fst + (FStar_Reflection_V2_Builtins.inspect_ident id)) + uu___3)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Syntax.Printer.fst" + (Prims.of_int (574)) (Prims.of_int (4)) + (Prims.of_int (575)) (Prims.of_int (70))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) + (Prims.of_int (19)) (Prims.of_int (611)) + (Prims.of_int (31))))) (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> Prims.strcat "fn " uu___1)) \ No newline at end of file + (fun uu___3 -> Prims.strcat "fn " uu___2)) \ No newline at end of file diff --git a/src/ocaml/plugin/generated/Pulse_Syntax_Pure.ml b/src/ocaml/plugin/generated/Pulse_Syntax_Pure.ml index 71dd88928..23e17c4b6 100644 --- a/src/ocaml/plugin/generated/Pulse_Syntax_Pure.ml +++ b/src/ocaml/plugin/generated/Pulse_Syntax_Pure.ml @@ -723,7 +723,8 @@ let rec (insert1 : (fun uu___ -> t :: ts)) else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = insert1 t ts' in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -736,10 +737,10 @@ let rec (insert1 : "Pulse.Syntax.Pure.fst" (Prims.of_int (482)) (Prims.of_int (9)) (Prims.of_int (482)) (Prims.of_int (26))))) - (Obj.magic (insert1 t ts')) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> t' :: uu___1)))))) uu___1 + (fun uu___3 -> t' :: uu___2)))))) uu___1 uu___ let (sort_terms : Pulse_Syntax_Base.term Prims.list -> @@ -750,6 +751,7 @@ let (canon_slprop_list_print : (Pulse_Syntax_Base.term, unit) FStar_Tactics_Effect.tac_repr) = fun vs -> + let uu___ = sort_terms vs in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -760,10 +762,10 @@ let (canon_slprop_list_print : (Obj.magic (FStar_Range.mk_range "Pulse.Syntax.Pure.fst" (Prims.of_int (491)) (Prims.of_int (4)) (Prims.of_int (491)) - (Prims.of_int (35))))) (Obj.magic (sort_terms vs)) - (fun uu___ -> + (Prims.of_int (35))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> list_as_slprop uu___)) + (fun uu___2 -> list_as_slprop uu___1)) let (canon_slprop_print : Pulse_Syntax_Base.term -> (Pulse_Syntax_Base.term, unit) FStar_Tactics_Effect.tac_repr) diff --git a/src/ocaml/plugin/generated/Pulse_Typing.ml b/src/ocaml/plugin/generated/Pulse_Typing.ml index 5bc4d3fd9..b0e470a65 100644 --- a/src/ocaml/plugin/generated/Pulse_Typing.ml +++ b/src/ocaml/plugin/generated/Pulse_Typing.ml @@ -17,7 +17,28 @@ let (debug_log : then Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = f () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.fst" + (Prims.of_int (35)) (Prims.of_int (57)) + (Prims.of_int (35)) (Prims.of_int (63))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Prims.strcat + (Prims.strcat "Debug@" + (Prims.strcat level ":{ ")) + (Prims.strcat uu___2 " }\n"))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.fst" @@ -28,35 +49,12 @@ let (debug_log : (FStar_Range.mk_range "Pulse.Typing.fst" (Prims.of_int (35)) (Prims.of_int (7)) (Prims.of_int (35)) (Prims.of_int (64))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.fst" - (Prims.of_int (35)) - (Prims.of_int (57)) - (Prims.of_int (35)) - (Prims.of_int (63))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic (f ())) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Prims.strcat - (Prims.strcat "Debug@" - (Prims.strcat level ":{ ")) - (Prims.strcat uu___ " }\n"))))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> Obj.magic - (FStar_Tactics_V2_Builtins.print uu___)) - uu___))) + (FStar_Tactics_V2_Builtins.print uu___1)) + uu___1))) else Obj.magic (Obj.repr diff --git a/src/ocaml/plugin/generated/Pulse_Typing_Combinators.ml b/src/ocaml/plugin/generated/Pulse_Typing_Combinators.ml index 4d2fed565..2c40856f0 100644 --- a/src/ocaml/plugin/generated/Pulse_Typing_Combinators.ml +++ b/src/ocaml/plugin/generated/Pulse_Typing_Combinators.ml @@ -136,7 +136,64 @@ let (weaken_comp_inames : | Pulse_Syntax_Base.C_STGhost (inames, sc) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = + let uu___2 = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames new_inames) () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (201)) + (Prims.of_int (72)) + (Prims.of_int (201)) + (Prims.of_int (129))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (201)) + (Prims.of_int (34)) + (Prims.of_int (201)) + (Prims.of_int (130))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing.STS_GhostInvs + (g, sc, inames, new_inames, + ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (201)) + (Prims.of_int (34)) + (Prims.of_int (201)) + (Prims.of_int (130))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (201)) + (Prims.of_int (16)) + (Prims.of_int (201)) + (Prims.of_int (130))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing.T_Sub + (g, e, c, + (Pulse_Syntax_Base.C_STGhost + (new_inames, sc)), d_e, + uu___2))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -153,71 +210,74 @@ let (weaken_comp_inames : (Prims.of_int (6)) (Prims.of_int (202)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (201)) - (Prims.of_int (34)) - (Prims.of_int (201)) - (Prims.of_int (130))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (201)) - (Prims.of_int (16)) - (Prims.of_int (201)) - (Prims.of_int (130))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (201)) - (Prims.of_int (72)) - (Prims.of_int (201)) - (Prims.of_int (129))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (201)) - (Prims.of_int (34)) - (Prims.of_int (201)) - (Prims.of_int (130))))) - (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames new_inames) ())) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.STS_GhostInvs - (g, sc, inames, - new_inames, ()))))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.T_Sub - (g, e, c, - (Pulse_Syntax_Base.C_STGhost - (new_inames, sc)), - d_e, uu___))))) + (Obj.magic uu___) (fun d_e1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___1 -> Prims.Mkdtuple2 ((with_inames c new_inames), d_e1))))) | Pulse_Syntax_Base.C_STAtomic (inames, obs, sc) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + let uu___1 = + let uu___2 = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames new_inames) () in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (205)) + (Prims.of_int (81)) + (Prims.of_int (205)) + (Prims.of_int (138))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (205)) + (Prims.of_int (34)) + (Prims.of_int (205)) + (Prims.of_int (139))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + Pulse_Typing.STS_AtomicInvs + (g, sc, inames, new_inames, + obs, obs, ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (205)) + (Prims.of_int (34)) + (Prims.of_int (205)) + (Prims.of_int (139))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (205)) + (Prims.of_int (16)) + (Prims.of_int (205)) + (Prims.of_int (139))))) + (Obj.magic uu___1) + (fun uu___2 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + Pulse_Typing.T_Sub + (g, e, c, + (Pulse_Syntax_Base.C_STAtomic + (new_inames, obs, sc)), + d_e, uu___2))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -234,65 +294,10 @@ let (weaken_comp_inames : (Prims.of_int (6)) (Prims.of_int (206)) (Prims.of_int (41))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (205)) - (Prims.of_int (34)) - (Prims.of_int (205)) - (Prims.of_int (139))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (205)) - (Prims.of_int (16)) - (Prims.of_int (205)) - (Prims.of_int (139))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (205)) - (Prims.of_int (81)) - (Prims.of_int (205)) - (Prims.of_int (138))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (205)) - (Prims.of_int (34)) - (Prims.of_int (205)) - (Prims.of_int (139))))) - (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames new_inames) ())) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.STS_AtomicInvs - (g, sc, inames, - new_inames, obs, - obs, ()))))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - Pulse_Typing.T_Sub - (g, e, c, - (Pulse_Syntax_Base.C_STAtomic - (new_inames, obs, sc)), - d_e, uu___))))) + (Obj.magic uu___) (fun d_e1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___1 -> Prims.Mkdtuple2 ((with_inames c new_inames), d_e1)))))) uu___4 uu___3 @@ -310,6 +315,8 @@ let (try_lift_ghost_atomic : fun e -> fun c -> fun d -> + let uu___ = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -321,9 +328,13 @@ let (try_lift_ghost_atomic : (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (216)) (Prims.of_int (4)) (Prims.of_int (222)) (Prims.of_int (10))))) - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ())) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun comp_res_typing -> + let uu___1 = + Pulse_Checker_Pure.try_get_non_informative_witness g + (Pulse_Syntax_Base.comp_u c) + (Pulse_Syntax_Base.comp_res c) () in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -338,13 +349,10 @@ let (try_lift_ghost_atomic : "Pulse.Typing.Combinators.fst" (Prims.of_int (218)) (Prims.of_int (2)) (Prims.of_int (222)) (Prims.of_int (10))))) - (Obj.magic - (Pulse_Checker_Pure.try_get_non_informative_witness - g (Pulse_Syntax_Base.comp_u c) - (Pulse_Syntax_Base.comp_res c) ())) + (Obj.magic uu___1) (fun w -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> + (fun uu___2 -> match w with | FStar_Pervasives_Native.None -> FStar_Pervasives_Native.None @@ -359,7 +367,7 @@ let (try_lift_ghost_atomic : (Pulse_Syntax_Base.st_comp_of_comp c))), d, (Pulse_Typing.Lift_Ghost_Neutral - (g, c, w1)))))))) uu___) + (g, c, w1)))))))) uu___1) let (lift_ghost_atomic : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -372,6 +380,7 @@ let (lift_ghost_atomic : fun e -> fun c -> fun d -> + let uu___ = try_lift_ghost_atomic g e c d in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -383,14 +392,19 @@ let (lift_ghost_atomic : (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (227)) (Prims.of_int (2)) (Prims.of_int (237)) (Prims.of_int (5))))) - (Obj.magic (try_lift_ghost_atomic g e c d)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun w -> match w with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + Pulse_Syntax_Base.comp_res c)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -407,10 +421,86 @@ let (lift_ghost_atomic : (Prims.of_int (4)) (Prims.of_int (235)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Base.comp_res c)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun t -> + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = + Pulse_PP.pp + Pulse_PP.printable_term t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (234)) + (Prims.of_int (10)) + (Prims.of_int (234)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (233)) + (Prims.of_int (8)) + (Prims.of_int (234)) + (Prims.of_int (16))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.prefix + (Prims.of_int (2)) + Prims.int_one + (Pulse_PP.text "Got:") + uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (233)) + (Prims.of_int (8)) + (Prims.of_int (234)) + (Prims.of_int (16))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (231)) + (Prims.of_int (43)) + (Prims.of_int (235)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> [uu___5])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (231)) + (Prims.of_int (43)) + (Prims.of_int (235)) + (Prims.of_int (5))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (231)) + (Prims.of_int (43)) + (Prims.of_int (235)) + (Prims.of_int (5))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + (Pulse_PP.text + "Expected a term with a non-informative (e.g., erased) type.") + :: uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -429,97 +519,20 @@ let (lift_ghost_atomic : (Prims.of_int (4)) (Prims.of_int (235)) (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (231)) - (Prims.of_int (43)) - (Prims.of_int (235)) - (Prims.of_int (5))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (231)) - (Prims.of_int (43)) - (Prims.of_int (235)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (233)) - (Prims.of_int (8)) - (Prims.of_int (234)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (231)) - (Prims.of_int (43)) - (Prims.of_int (235)) - (Prims.of_int (5))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (234)) - (Prims.of_int (10)) - (Prims.of_int (234)) - (Prims.of_int (16))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (233)) - (Prims.of_int (8)) - (Prims.of_int (234)) - (Prims.of_int (16))))) - (Obj.magic - (Pulse_PP.pp - Pulse_PP.printable_term - t)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 - -> - FStar_Pprint.prefix - (Prims.of_int (2)) - Prims.int_one - (Pulse_PP.text - "Got:") - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - [uu___])))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - (Pulse_PP.text - "Expected a term with a non-informative (e.g., erased) type.") - :: uu___)))) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (Pulse_RuntimeUtils.range_of_term - t)) uu___)) uu___))) - uu___))) + t)) uu___3)) uu___3))) + uu___2))) | FStar_Pervasives_Native.Some d1 -> Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> d1)))) uu___) + (fun uu___1 -> d1)))) uu___1) let (mk_bind_ghost_ghost : (unit, unit) bind_t) = fun g -> fun pre -> @@ -534,6 +547,10 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = fun res_typing -> fun post_typing -> fun post_hint -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> px)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -551,12 +568,18 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (80)) (Prims.of_int (265)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> px)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (uu___1, x) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (uu___2, x) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + nvar_as_binder px + (Pulse_Syntax_Base.comp_res + c1))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -575,13 +598,13 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (44)) (Prims.of_int (265)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - nvar_as_binder px - (Pulse_Syntax_Base.comp_res - c1))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun b -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> c1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -600,16 +623,22 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (44)) (Prims.of_int (265)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> c1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | Pulse_Syntax_Base.C_STGhost (inames1, sc1) -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + c2)) in Obj.magic ( FStar_Tactics_Effect.tac_bind @@ -629,15 +658,13 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (35)) (Prims.of_int (265)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - c2)) + (Obj.magic + uu___6) (fun - uu___3 -> + uu___7 -> (fun - uu___3 -> - match uu___3 + uu___7 -> + match uu___7 with | Pulse_Syntax_Base.C_STGhost @@ -652,7 +679,7 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -690,25 +717,27 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = FStar_Pervasives_Native.uu___is_Some post_hint then + let uu___9 + = + let uu___10 + = + let uu___11 + = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames1 + inames2) + () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (252)) - (Prims.of_int (15)) + (Prims.of_int (71)) (Prims.of_int (252)) - (Prims.of_int (129))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (255)) - (Prims.of_int (4)) - (Prims.of_int (255)) - (Prims.of_int (61))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (128))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -717,54 +746,46 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (34)) (Prims.of_int (252)) (Prims.of_int (129))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (252)) - (Prims.of_int (15)) - (Prims.of_int (252)) - (Prims.of_int (129))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing.STS_GhostInvs + (g, sc1, + inames1, + inames2, + ()))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (252)) - (Prims.of_int (71)) + (Prims.of_int (34)) (Prims.of_int (252)) - (Prims.of_int (128))))) + (Prims.of_int (129))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (252)) - (Prims.of_int (34)) + (Prims.of_int (15)) (Prims.of_int (252)) (Prims.of_int (129))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames1 - inames2) - ())) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing.STS_GhostInvs - (g, sc1, - inames1, - inames2, - ()))))) + uu___10) (fun - uu___5 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___12 + -> Pulse_Typing.T_Sub (g, e1, c1, @@ -772,12 +793,32 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (inames2, sc1)), d_e1, - uu___5))))) + uu___11))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (252)) + (Prims.of_int (15)) + (Prims.of_int (252)) + (Prims.of_int (129))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (255)) + (Prims.of_int (4)) + (Prims.of_int (255)) + (Prims.of_int (61))))) + (Obj.magic + uu___9) (fun d_e11 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___10 + -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -820,6 +861,16 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = c2, (), x, ()))))))) else + (let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing.tm_join_inames + inames1 + inames2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -837,37 +888,35 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (54)) (Prims.of_int (264)) (Prims.of_int (61))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing.tm_join_inames - inames1 - inames2)) + (Obj.magic + uu___10) (fun - uu___6 -> + uu___11 + -> (fun new_inames -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames1 + new_inames) + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (259)) - (Prims.of_int (15)) - (Prims.of_int (259)) - (Prims.of_int (132))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" + (Prims.of_int (74)) (Prims.of_int (259)) - (Prims.of_int (135)) - (Prims.of_int (264)) - (Prims.of_int (61))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (131))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -876,54 +925,46 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (Prims.of_int (34)) (Prims.of_int (259)) (Prims.of_int (132))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (259)) - (Prims.of_int (15)) - (Prims.of_int (259)) - (Prims.of_int (132))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Typing.STS_GhostInvs + (g, sc1, + inames1, + new_inames, + ()))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (259)) - (Prims.of_int (74)) + (Prims.of_int (34)) (Prims.of_int (259)) - (Prims.of_int (131))))) + (Prims.of_int (132))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (259)) - (Prims.of_int (34)) + (Prims.of_int (15)) (Prims.of_int (259)) (Prims.of_int (132))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames1 - new_inames) - ())) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing.STS_GhostInvs - (g, sc1, - inames1, - new_inames, - ()))))) + uu___12) (fun - uu___6 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___14 + -> Pulse_Typing.T_Sub (g, e1, c1, @@ -931,84 +972,77 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (new_inames, sc1)), d_e1, - uu___6))))) - (fun - uu___6 -> - (fun - d_e11 -> + uu___13))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (260)) + (Prims.of_int (259)) (Prims.of_int (15)) - (Prims.of_int (260)) + (Prims.of_int (259)) (Prims.of_int (132))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (264)) - (Prims.of_int (4)) + (Prims.of_int (259)) + (Prims.of_int (135)) (Prims.of_int (264)) (Prims.of_int (61))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + d_e11 -> + let uu___12 + = + let uu___13 + = + let uu___14 + = + Pulse_Checker_Pure.check_prop_validity + (Pulse_Typing_Env.push_binding + g + (FStar_Pervasives_Native.snd + px) + (FStar_Pervasives_Native.fst + px) + (Pulse_Syntax_Base.comp_res + c1)) + (Pulse_Typing.tm_inames_subset + inames2 + new_inames) + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (260)) - (Prims.of_int (34)) + (Prims.of_int (74)) (Prims.of_int (260)) - (Prims.of_int (132))))) + (Prims.of_int (131))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (260)) - (Prims.of_int (15)) + (Prims.of_int (34)) (Prims.of_int (260)) (Prims.of_int (132))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (260)) - (Prims.of_int (74)) - (Prims.of_int (260)) - (Prims.of_int (131))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (260)) - (Prims.of_int (34)) - (Prims.of_int (260)) - (Prims.of_int (132))))) - (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - (Pulse_Typing_Env.push_binding - g - (FStar_Pervasives_Native.snd - px) - (FStar_Pervasives_Native.fst - px) - (Pulse_Syntax_Base.comp_res - c1)) - (Pulse_Typing.tm_inames_subset - inames2 - new_inames) - ())) + uu___14) (fun - uu___6 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___16 + -> Pulse_Typing.STS_GhostInvs ((Pulse_Typing_Env.push_binding g @@ -1021,12 +1055,33 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = sc2, inames2, new_inames, - ()))))) + ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (260)) + (Prims.of_int (34)) + (Prims.of_int (260)) + (Prims.of_int (132))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (260)) + (Prims.of_int (15)) + (Prims.of_int (260)) + (Prims.of_int (132))))) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___15 + -> Pulse_Typing.T_Sub ((Pulse_Typing_Env.push_binding g @@ -1043,12 +1098,33 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = (new_inames, sc2)), d_e2, - uu___6))))) + uu___14))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (260)) + (Prims.of_int (15)) + (Prims.of_int (260)) + (Prims.of_int (132))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (264)) + (Prims.of_int (4)) + (Prims.of_int (264)) + (Prims.of_int (61))))) + (Obj.magic + uu___12) (fun d_e21 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___13 + -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -1105,11 +1181,11 @@ let (mk_bind_ghost_ghost : (unit, unit) bind_t) = sc2)), (), x, ()))))))))) - uu___6))) - uu___6)))) - uu___3))) - uu___2))) uu___2))) - uu___) + uu___12))) + uu___11))))) + uu___7))) + uu___5))) uu___4))) + uu___1) let (mk_bind_atomic_atomic : (unit, unit) bind_t) = fun g -> fun pre -> @@ -1124,6 +1200,10 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = fun res_typing -> fun post_typing -> fun post_hint -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> px)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1141,12 +1221,18 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (82)) (Prims.of_int (300)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> px)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (uu___1, x) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (uu___2, x) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + nvar_as_binder px + (Pulse_Syntax_Base.comp_res + c1))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1165,13 +1251,13 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (48)) (Prims.of_int (300)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - nvar_as_binder px - (Pulse_Syntax_Base.comp_res - c1))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun b -> + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> c1)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1190,16 +1276,22 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (48)) (Prims.of_int (300)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> c1)) - (fun uu___2 -> - (fun uu___2 -> - match uu___2 + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + match uu___5 with | Pulse_Syntax_Base.C_STAtomic (inames1, obs1, sc1) -> + let uu___6 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___7 -> + c2)) in Obj.magic ( FStar_Tactics_Effect.tac_bind @@ -1219,15 +1311,13 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (45)) (Prims.of_int (300)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___3 -> - c2)) + (Obj.magic + uu___6) (fun - uu___3 -> + uu___7 -> (fun - uu___3 -> - match uu___3 + uu___7 -> + match uu___7 with | Pulse_Syntax_Base.C_STAtomic @@ -1248,7 +1338,7 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = Obj.repr (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -1285,25 +1375,27 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = FStar_Pervasives_Native.uu___is_Some post_hint then + let uu___9 + = + let uu___10 + = + let uu___11 + = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames1 + inames2) + () in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (283)) - (Prims.of_int (21)) + (Prims.of_int (88)) (Prims.of_int (283)) - (Prims.of_int (146))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (286)) - (Prims.of_int (10)) - (Prims.of_int (286)) - (Prims.of_int (67))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (145))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1312,55 +1404,47 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (40)) (Prims.of_int (283)) (Prims.of_int (146))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (283)) - (Prims.of_int (21)) - (Prims.of_int (283)) - (Prims.of_int (146))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing.STS_AtomicInvs + (g, sc1, + inames1, + inames2, + obs1, + obs1, ()))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (283)) - (Prims.of_int (88)) + (Prims.of_int (40)) (Prims.of_int (283)) - (Prims.of_int (145))))) + (Prims.of_int (146))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (283)) - (Prims.of_int (40)) + (Prims.of_int (21)) (Prims.of_int (283)) (Prims.of_int (146))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames1 - inames2) - ())) - (fun - uu___5 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing.STS_AtomicInvs - (g, sc1, - inames1, - inames2, - obs1, - obs1, ()))))) + uu___10) (fun - uu___5 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___12 + -> Pulse_Typing.T_Sub (g, e1, c1, @@ -1369,12 +1453,32 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = obs1, sc1)), d_e1, - uu___5))))) + uu___11))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (283)) + (Prims.of_int (21)) + (Prims.of_int (283)) + (Prims.of_int (146))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (286)) + (Prims.of_int (10)) + (Prims.of_int (286)) + (Prims.of_int (67))))) + (Obj.magic + uu___9) (fun d_e11 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___5 -> + uu___10 + -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -1422,6 +1526,16 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = c2, (), x, ()))))))) else + (let uu___10 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + Pulse_Typing.tm_join_inames + inames1 + inames2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1439,37 +1553,35 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (60)) (Prims.of_int (295)) (Prims.of_int (67))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___6 -> - Pulse_Typing.tm_join_inames - inames1 - inames2)) + (Obj.magic + uu___10) (fun - uu___6 -> + uu___11 + -> (fun new_inames -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___11 + = + let uu___12 + = + let uu___13 + = + Pulse_Checker_Pure.check_prop_validity + g + (Pulse_Typing.tm_inames_subset + inames1 + new_inames) + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (290)) - (Prims.of_int (21)) - (Prims.of_int (290)) - (Prims.of_int (149))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" + (Prims.of_int (91)) (Prims.of_int (290)) - (Prims.of_int (152)) - (Prims.of_int (295)) - (Prims.of_int (67))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Prims.of_int (148))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1478,55 +1590,47 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (40)) (Prims.of_int (290)) (Prims.of_int (149))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (290)) - (Prims.of_int (21)) - (Prims.of_int (290)) - (Prims.of_int (149))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___13) + (fun + uu___14 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___15 + -> + Pulse_Typing.STS_AtomicInvs + (g, sc1, + inames1, + new_inames, + obs1, + obs1, ()))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (290)) - (Prims.of_int (91)) + (Prims.of_int (40)) (Prims.of_int (290)) - (Prims.of_int (148))))) + (Prims.of_int (149))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (290)) - (Prims.of_int (40)) + (Prims.of_int (21)) (Prims.of_int (290)) (Prims.of_int (149))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - g - (Pulse_Typing.tm_inames_subset - inames1 - new_inames) - ())) - (fun - uu___6 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___7 -> - Pulse_Typing.STS_AtomicInvs - (g, sc1, - inames1, - new_inames, - obs1, - obs1, ()))))) + uu___12) (fun - uu___6 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___14 + -> Pulse_Typing.T_Sub (g, e1, c1, @@ -1535,49 +1639,52 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = obs1, sc1)), d_e1, - uu___6))))) - (fun - uu___6 -> - (fun - d_e11 -> + uu___13))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (291)) + (Prims.of_int (290)) (Prims.of_int (21)) - (Prims.of_int (291)) + (Prims.of_int (290)) (Prims.of_int (149))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (295)) - (Prims.of_int (10)) + (Prims.of_int (290)) + (Prims.of_int (152)) (Prims.of_int (295)) (Prims.of_int (67))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (291)) - (Prims.of_int (40)) - (Prims.of_int (291)) - (Prims.of_int (149))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (291)) - (Prims.of_int (21)) - (Prims.of_int (291)) - (Prims.of_int (149))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___11) + (fun + uu___12 + -> + (fun + d_e11 -> + let uu___12 + = + let uu___13 + = + let uu___14 + = + Pulse_Checker_Pure.check_prop_validity + (Pulse_Typing_Env.push_binding + g + (FStar_Pervasives_Native.snd + px) + (FStar_Pervasives_Native.fst + px) + (Pulse_Syntax_Base.comp_res + c1)) + (Pulse_Typing.tm_inames_subset + inames2 + new_inames) + () in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1595,24 +1702,14 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = (Prims.of_int (291)) (Prims.of_int (149))))) (Obj.magic - (Pulse_Checker_Pure.check_prop_validity - (Pulse_Typing_Env.push_binding - g - (FStar_Pervasives_Native.snd - px) - (FStar_Pervasives_Native.fst - px) - (Pulse_Syntax_Base.comp_res - c1)) - (Pulse_Typing.tm_inames_subset - inames2 - new_inames) - ())) + uu___14) (fun - uu___6 -> + uu___15 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___16 + -> Pulse_Typing.STS_AtomicInvs ((Pulse_Typing_Env.push_binding g @@ -1626,12 +1723,33 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = inames2, new_inames, obs2, - obs2, ()))))) + obs2, ()))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (291)) + (Prims.of_int (40)) + (Prims.of_int (291)) + (Prims.of_int (149))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (291)) + (Prims.of_int (21)) + (Prims.of_int (291)) + (Prims.of_int (149))))) + (Obj.magic + uu___13) (fun - uu___6 -> + uu___14 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___15 + -> Pulse_Typing.T_Sub ((Pulse_Typing_Env.push_binding g @@ -1649,12 +1767,33 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = obs2, sc2)), d_e2, - uu___6))))) + uu___14))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (291)) + (Prims.of_int (21)) + (Prims.of_int (291)) + (Prims.of_int (149))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (295)) + (Prims.of_int (10)) + (Prims.of_int (295)) + (Prims.of_int (67))))) + (Obj.magic + uu___12) (fun d_e21 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___13 + -> FStar_Pervasives.Mkdtuple3 ((Pulse_Typing.wrst (Pulse_Typing.bind_comp_out @@ -1721,16 +1860,16 @@ let (mk_bind_atomic_atomic : (unit, unit) bind_t) = sc2)), (), x, ()))))))))) - uu___6))) - uu___6)))) + uu___12))) + uu___11))))) else Obj.magic (Obj.repr (FStar_Tactics_V2_Derived.fail "Should have been handled separately"))) - uu___3))) - uu___2))) uu___2))) - uu___) + uu___7))) + uu___5))) uu___4))) + uu___1) let rec (mk_bind : Pulse_Typing_Env.env -> Pulse_Syntax_Base.term -> @@ -1764,6 +1903,10 @@ let rec (mk_bind : fun res_typing -> fun post_typing -> fun post_hint -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> px)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1781,12 +1924,18 @@ let rec (mk_bind : (Prims.of_int (38)) (Prims.of_int (416)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> px)) - (fun uu___ -> - (fun uu___ -> - match uu___ with - | (uu___1, x) -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + match uu___1 with + | (uu___2, x) -> + let uu___3 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + nvar_as_binder px + (Pulse_Syntax_Base.comp_res + c1))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1805,75 +1954,59 @@ let rec (mk_bind : (Prims.of_int (44)) (Prims.of_int (416)) (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - nvar_as_binder px - (Pulse_Syntax_Base.comp_res - c1))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> (fun b -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (335)) - (Prims.of_int (4)) - (Prims.of_int (339)) - (Prims.of_int (88))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (341)) - (Prims.of_int (2)) - (Prims.of_int (416)) - (Prims.of_int (5))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun a -> - fun tag -> - FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (337)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (88))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (336)) - (Prims.of_int (4)) - (Prims.of_int (339)) - (Prims.of_int (88))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___4 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + fun a -> + fun tag -> + let uu___6 = + let uu___7 + = + let uu___8 + = + let uu___9 + = + Pulse_PP.pp + Pulse_PP.pp_effect_annot + (Pulse_Syntax_Base.effect_annot_of_comp + c1) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (337)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (88))))) + (Prims.of_int (338)) + (Prims.of_int (57)) + (Prims.of_int (338)) + (Prims.of_int (87))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (337)) - (Prims.of_int (6)) - (Prims.of_int (339)) - (Prims.of_int (88))))) + (Prims.of_int (338)) + (Prims.of_int (7)) + (Prims.of_int (338)) + (Prims.of_int (87))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___9) + (fun + uu___10 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___11 + -> + FStar_Pprint.prefix + (Prims.of_int (4)) + Prims.int_one + (Pulse_PP.text + "This computation has effect: ") + uu___10)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1891,53 +2024,62 @@ let rec (mk_bind : (Prims.of_int (339)) (Prims.of_int (88))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___8) + (fun + uu___9 -> + (fun + uu___9 -> + let uu___10 + = + let uu___11 + = + let uu___12 + = + Pulse_PP.pp + Pulse_PP.pp_effect_annot + (Pulse_Syntax_Base.effect_annot_of_comp + c2) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (338)) + (Prims.of_int (339)) (Prims.of_int (57)) - (Prims.of_int (338)) + (Prims.of_int (339)) (Prims.of_int (87))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (338)) + (Prims.of_int (339)) (Prims.of_int (7)) - (Prims.of_int (338)) + (Prims.of_int (339)) (Prims.of_int (87))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.pp_effect_annot - (Pulse_Syntax_Base.effect_annot_of_comp - c1))) + uu___12) (fun - uu___3 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___14 + -> FStar_Pprint.prefix (Prims.of_int (4)) Prims.int_one (Pulse_PP.text - "This computation has effect: ") - uu___3)))) - (fun - uu___3 -> - (fun - uu___3 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind + "The continuation has effect: ") + uu___13)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" - (Prims.of_int (337)) - (Prims.of_int (6)) (Prims.of_int (339)) - (Prims.of_int (88))))) + (Prims.of_int (7)) + (Prims.of_int (339)) + (Prims.of_int (87))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1947,15 +2089,25 @@ let rec (mk_bind : (Prims.of_int (339)) (Prims.of_int (88))))) (Obj.magic + uu___11) + (fun + uu___12 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + [uu___12])) in + Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" + (Prims.of_int (337)) + (Prims.of_int (6)) (Prims.of_int (339)) - (Prims.of_int (7)) - (Prims.of_int (339)) - (Prims.of_int (87))))) + (Prims.of_int (88))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -1965,58 +2117,41 @@ let rec (mk_bind : (Prims.of_int (339)) (Prims.of_int (88))))) (Obj.magic - (FStar_Tactics_Effect.tac_bind + uu___10) + (fun + uu___11 + -> + FStar_Tactics_Effect.lift_div_tac + (fun + uu___12 + -> uu___9 + :: + uu___11)))) + uu___9) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" + (Prims.of_int (337)) + (Prims.of_int (6)) (Prims.of_int (339)) - (Prims.of_int (57)) - (Prims.of_int (339)) - (Prims.of_int (87))))) + (Prims.of_int (88))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" + (Prims.of_int (337)) + (Prims.of_int (6)) (Prims.of_int (339)) - (Prims.of_int (7)) - (Prims.of_int (339)) - (Prims.of_int (87))))) + (Prims.of_int (88))))) (Obj.magic - (Pulse_PP.pp - Pulse_PP.pp_effect_annot - (Pulse_Syntax_Base.effect_annot_of_comp - c2))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac + uu___7) (fun - uu___5 -> - FStar_Pprint.prefix - (Prims.of_int (4)) - Prims.int_one - (Pulse_PP.text - "The continuation has effect: ") - uu___4)))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - [uu___4])))) - (fun - uu___4 -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - uu___3 :: - uu___4)))) - uu___3))) - (fun - uu___3 -> + uu___8 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___9 -> (FStar_Pprint.op_Hat_Slash_Hat (Pulse_PP.text "Cannot compose computations in this ") @@ -2025,27 +2160,64 @@ let rec (mk_bind : tag) (Pulse_PP.text " block:"))) - :: uu___3)))) - ( - fun - uu___3 -> + :: uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (337)) + (Prims.of_int (6)) + (Prims.of_int (339)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (336)) + (Prims.of_int (4)) + (Prims.of_int (339)) + (Prims.of_int (88))))) + (Obj.magic + uu___6) + (fun + uu___7 -> (fun - uu___3 -> + uu___7 -> Obj.magic (Pulse_Typing_Env.fail_doc g (FStar_Pervasives_Native.Some (e1.Pulse_Syntax_Base.range1)) - uu___3)) - uu___3))) - (fun uu___2 -> + uu___7)) + uu___7))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (335)) + (Prims.of_int (4)) + (Prims.of_int (339)) + (Prims.of_int (88))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (341)) + (Prims.of_int (2)) + (Prims.of_int (416)) + (Prims.of_int (5))))) + (Obj.magic uu___4) + (fun uu___5 -> (fun fail_bias -> match (c1, c2) with | (Pulse_Syntax_Base.C_ST - uu___2, + uu___5, Pulse_Syntax_Base.C_ST - uu___3) -> + uu___6) -> Obj.magic ( Obj.repr @@ -2057,11 +2229,11 @@ let rec (mk_bind : () () post_hint)) | (Pulse_Syntax_Base.C_STGhost - (uu___2, - uu___3), + (uu___5, + uu___6), Pulse_Syntax_Base.C_STGhost - (uu___4, - uu___5)) -> + (uu___7, + uu___8)) -> Obj.magic ( Obj.repr @@ -2106,26 +2278,12 @@ let rec (mk_bind : "atomic") else Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (356)) - (Prims.of_int (17)) - (Prims.of_int (356)) - (Prims.of_int (60))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (357)) - (Prims.of_int (6)) - (Prims.of_int (357)) - (Prims.of_int (84))))) + (let uu___7 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___4 -> + uu___8 -> Pulse_Typing.T_Lift (g, e1, c1, @@ -2134,9 +2292,28 @@ let rec (mk_bind : c1)), d_e1, (Pulse_Typing.Lift_STAtomic_ST - (g, c1))))) + (g, c1))))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (356)) + (Prims.of_int (17)) + (Prims.of_int (356)) + (Prims.of_int (60))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (357)) + (Prims.of_int (6)) + (Prims.of_int (357)) + (Prims.of_int (84))))) + (Obj.magic + uu___7) (fun - uu___4 -> + uu___8 -> (fun d_e11 -> Obj.magic @@ -2150,17 +2327,32 @@ let rec (mk_bind : () d_e2 () () post_hint)) - uu___4))))) + uu___8))))) | (Pulse_Syntax_Base.C_STAtomic (inames, - uu___2, - uu___3), + uu___5, + uu___6), Pulse_Syntax_Base.C_ST - uu___4) -> + uu___7) -> Obj.magic ( Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___9 -> + Pulse_Typing.T_Lift + (g, e1, + c1, + (Pulse_Syntax_Base.C_ST + (Pulse_Syntax_Base.st_comp_of_comp + c1)), + d_e1, + (Pulse_Typing.Lift_STAtomic_ST + (g, c1))))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2177,20 +2369,10 @@ let rec (mk_bind : (Prims.of_int (4)) (Prims.of_int (362)) (Prims.of_int (82))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___5 -> - Pulse_Typing.T_Lift - (g, e1, - c1, - (Pulse_Syntax_Base.C_ST - (Pulse_Syntax_Base.st_comp_of_comp - c1)), - d_e1, - (Pulse_Typing.Lift_STAtomic_ST - (g, c1))))) + (Obj.magic + uu___8) (fun - uu___5 -> + uu___9 -> (fun d_e11 -> Obj.magic @@ -2204,13 +2386,13 @@ let rec (mk_bind : () d_e2 () () post_hint)) - uu___5))) + uu___9))) | (Pulse_Syntax_Base.C_ST - uu___2, + uu___5, Pulse_Syntax_Base.C_STAtomic (inames, - uu___3, - uu___4)) -> + uu___6, + uu___7)) -> Obj.magic ( Obj.repr @@ -2224,26 +2406,13 @@ let rec (mk_bind : "atomic") else Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (368)) - (Prims.of_int (18)) - (Prims.of_int (368)) - (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (368)) - (Prims.of_int (64)) - (Prims.of_int (370)) - (Prims.of_int (19))))) + (let uu___9 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___6 -> + uu___10 + -> Pulse_Typing.T_Lift ((Pulse_Typing_Env.push_binding g @@ -2268,11 +2437,43 @@ let rec (mk_bind : (FStar_Pervasives_Native.fst px) (Pulse_Syntax_Base.comp_res - c1)), c2))))) + c1)), c2))))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (368)) + (Prims.of_int (18)) + (Prims.of_int (368)) + (Prims.of_int (61))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (368)) + (Prims.of_int (64)) + (Prims.of_int (370)) + (Prims.of_int (19))))) + (Obj.magic + uu___9) (fun - uu___6 -> + uu___10 + -> (fun d_e21 -> + let uu___10 + = + mk_bind g + pre e1 e2 + c1 + (Pulse_Syntax_Base.C_ST + (Pulse_Syntax_Base.st_comp_of_comp + c2)) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2292,22 +2493,15 @@ let rec (mk_bind : (Prims.of_int (370)) (Prims.of_int (19))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (Pulse_Syntax_Base.C_ST - (Pulse_Syntax_Base.st_comp_of_comp - c2)) px - d_e1 () - d_e21 () - () - post_hint)) + uu___10) (fun - uu___6 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - match uu___6 + uu___12 + -> + match uu___11 with | FStar_Pervasives.Mkdtuple3 @@ -2315,18 +2509,23 @@ let rec (mk_bind : -> FStar_Pervasives.Mkdtuple3 (t, c, d))))) - uu___6)))) + uu___10)))) | (Pulse_Syntax_Base.C_STGhost - (uu___2, - uu___3), + (uu___5, + uu___6), Pulse_Syntax_Base.C_STAtomic - (uu___4, + (uu___7, Pulse_Syntax_Base.Neutral, - uu___5)) -> + uu___8)) -> Obj.magic ( Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + try_lift_ghost_atomic + g e1 c1 + d_e1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2344,14 +2543,14 @@ let rec (mk_bind : (Prims.of_int (385)) (Prims.of_int (3))))) (Obj.magic - (try_lift_ghost_atomic - g e1 c1 - d_e1)) + uu___9) (fun - uu___6 -> + uu___10 + -> (fun - uu___6 -> - match uu___6 + uu___10 + -> + match uu___10 with | FStar_Pervasives_Native.Some @@ -2378,26 +2577,13 @@ let rec (mk_bind : FStar_Pervasives_Native.None -> Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (381)) - (Prims.of_int (19)) - (Prims.of_int (381)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (381)) - (Prims.of_int (67)) - (Prims.of_int (383)) - (Prims.of_int (21))))) + (let uu___11 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> + uu___12 + -> Pulse_Typing.T_Lift ((Pulse_Typing_Env.push_binding g @@ -2424,11 +2610,45 @@ let rec (mk_bind : (FStar_Pervasives_Native.fst px) (Pulse_Syntax_Base.comp_res - c1)), c2))))) + c1)), c2))))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (381)) + (Prims.of_int (19)) + (Prims.of_int (381)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (381)) + (Prims.of_int (67)) + (Prims.of_int (383)) + (Prims.of_int (21))))) + (Obj.magic + uu___11) (fun - uu___7 -> + uu___12 + -> (fun d_e21 -> + let uu___12 + = + mk_bind g + pre e1 e2 + c1 + (Pulse_Syntax_Base.C_STGhost + ((Pulse_Syntax_Base.comp_inames + c2), + (Pulse_Syntax_Base.st_comp_of_comp + c2))) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2448,24 +2668,15 @@ let rec (mk_bind : (Prims.of_int (383)) (Prims.of_int (21))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (Pulse_Syntax_Base.C_STGhost - ((Pulse_Syntax_Base.comp_inames - c2), - (Pulse_Syntax_Base.st_comp_of_comp - c2))) px - d_e1 () - d_e21 () - () - post_hint)) + uu___12) (fun - uu___7 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___8 -> - match uu___7 + uu___14 + -> + match uu___13 with | FStar_Pervasives.Mkdtuple3 @@ -2473,54 +2684,40 @@ let rec (mk_bind : -> FStar_Pervasives.Mkdtuple3 (t, c, d))))) - uu___7)) + uu___12)) | FStar_Pervasives_Native.Some { Pulse_Typing.g - = uu___7; + = uu___11; Pulse_Typing.effect_annot = Pulse_Syntax_Base.EffectAnnotAtomicOrGhost - uu___8; + uu___12; Pulse_Typing.effect_annot_typing - = uu___9; + = uu___13; Pulse_Typing.ret_ty - = uu___10; + = uu___14; Pulse_Typing.u - = uu___11; + = uu___15; Pulse_Typing.ty_typing - = uu___12; + = uu___16; Pulse_Typing.post - = uu___13; + = uu___17; Pulse_Typing.x - = uu___14; + = uu___18; Pulse_Typing.post_typing_src - = uu___15; + = uu___19; Pulse_Typing.post_typing - = uu___16;_} + = uu___20;_} -> Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (381)) - (Prims.of_int (19)) - (Prims.of_int (381)) - (Prims.of_int (64))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (381)) - (Prims.of_int (67)) - (Prims.of_int (383)) - (Prims.of_int (21))))) + (let uu___21 + = + Obj.magic (FStar_Tactics_Effect.lift_div_tac (fun - uu___17 + uu___22 -> Pulse_Typing.T_Lift ((Pulse_Typing_Env.push_binding @@ -2548,12 +2745,45 @@ let rec (mk_bind : (FStar_Pervasives_Native.fst px) (Pulse_Syntax_Base.comp_res - c1)), c2))))) + c1)), c2))))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (381)) + (Prims.of_int (19)) + (Prims.of_int (381)) + (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (381)) + (Prims.of_int (67)) + (Prims.of_int (383)) + (Prims.of_int (21))))) + (Obj.magic + uu___21) (fun - uu___17 + uu___22 -> (fun d_e21 -> + let uu___22 + = + mk_bind g + pre e1 e2 + c1 + (Pulse_Syntax_Base.C_STGhost + ((Pulse_Syntax_Base.comp_inames + c2), + (Pulse_Syntax_Base.st_comp_of_comp + c2))) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2573,26 +2803,15 @@ let rec (mk_bind : (Prims.of_int (383)) (Prims.of_int (21))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (Pulse_Syntax_Base.C_STGhost - ((Pulse_Syntax_Base.comp_inames - c2), - (Pulse_Syntax_Base.st_comp_of_comp - c2))) px - d_e1 () - d_e21 () - () - post_hint)) + uu___22) (fun - uu___17 + uu___23 -> FStar_Tactics_Effect.lift_div_tac (fun - uu___18 + uu___24 -> - match uu___17 + match uu___23 with | FStar_Pervasives.Mkdtuple3 @@ -2600,21 +2819,22 @@ let rec (mk_bind : -> FStar_Pervasives.Mkdtuple3 (t, c, d))))) - uu___17)) + uu___22)) | - uu___7 -> + uu___11 + -> Obj.repr (fail_bias () "atomic")))) - uu___6))) + uu___10))) | (Pulse_Syntax_Base.C_STAtomic - (uu___2, + (uu___5, Pulse_Syntax_Base.Neutral, - uu___3), + uu___6), Pulse_Syntax_Base.C_STGhost - (uu___4, - uu___5)) -> + (uu___7, + uu___8)) -> Obj.magic ( Obj.repr @@ -2624,28 +2844,46 @@ let rec (mk_bind : FStar_Pervasives_Native.Some { Pulse_Typing.g - = uu___6; + = uu___9; Pulse_Typing.effect_annot = Pulse_Syntax_Base.EffectAnnotGhost - uu___7; + uu___10; Pulse_Typing.effect_annot_typing - = uu___8; + = uu___11; Pulse_Typing.ret_ty - = uu___9; + = uu___12; Pulse_Typing.u - = uu___10; + = uu___13; Pulse_Typing.ty_typing - = uu___11; + = uu___14; Pulse_Typing.post - = uu___12; + = uu___15; Pulse_Typing.x - = uu___13; + = uu___16; Pulse_Typing.post_typing_src - = uu___14; + = uu___17; Pulse_Typing.post_typing - = uu___15;_} + = uu___18;_} + -> + let uu___19 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___20 -> + Pulse_Typing.T_Lift + (g, e1, + c1, + (Pulse_Syntax_Base.C_STGhost + ((Pulse_Syntax_Base.comp_inames + c1), + (Pulse_Syntax_Base.st_comp_of_comp + c1))), + d_e1, + (Pulse_Typing.Lift_Neutral_Ghost + (g, c1))))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2663,23 +2901,10 @@ let rec (mk_bind : (Prims.of_int (6)) (Prims.of_int (391)) (Prims.of_int (84))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___16 - -> - Pulse_Typing.T_Lift - (g, e1, - c1, - (Pulse_Syntax_Base.C_STGhost - ((Pulse_Syntax_Base.comp_inames - c1), - (Pulse_Syntax_Base.st_comp_of_comp - c1))), - d_e1, - (Pulse_Typing.Lift_Neutral_Ghost - (g, c1))))) + (Obj.magic + uu___19) (fun - uu___16 + uu___20 -> (fun d_e11 -> @@ -2696,9 +2921,23 @@ let rec (mk_bind : () d_e2 () () post_hint)) - uu___16) + uu___20) | - uu___6 -> + uu___9 -> + let uu___10 + = + try_lift_ghost_atomic + (Pulse_Typing_Env.push_binding + g + (FStar_Pervasives_Native.snd + px) + (FStar_Pervasives_Native.fst + px) + (Pulse_Syntax_Base.comp_res + c1)) + (Pulse_Syntax_Naming.open_st_term_nv + e2 px) c2 + d_e2 in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -2717,27 +2956,29 @@ let rec (mk_bind : (Prims.of_int (400)) (Prims.of_int (86))))) (Obj.magic - (try_lift_ghost_atomic - (Pulse_Typing_Env.push_binding - g - (FStar_Pervasives_Native.snd - px) - (FStar_Pervasives_Native.fst - px) - (Pulse_Syntax_Base.comp_res - c1)) - (Pulse_Syntax_Naming.open_st_term_nv - e2 px) c2 - d_e2)) + uu___10) (fun - uu___7 -> + uu___11 + -> (fun - uu___7 -> - match uu___7 + uu___11 + -> + match uu___11 with | FStar_Pervasives_Native.Some d_e21 -> + let uu___12 + = + mk_bind g + pre e1 e2 + c1 + (st_ghost_as_atomic + c2) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2757,21 +2998,15 @@ let rec (mk_bind : (Prims.of_int (397)) (Prims.of_int (21))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (st_ghost_as_atomic - c2) px - d_e1 () - d_e21 () - () - post_hint)) + uu___12) (fun - uu___8 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - match uu___8 + uu___14 + -> + match uu___13 with | FStar_Pervasives.Mkdtuple3 @@ -2782,6 +3017,24 @@ let rec (mk_bind : | FStar_Pervasives_Native.None -> + let uu___12 + = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun + uu___13 + -> + Pulse_Typing.T_Lift + (g, e1, + c1, + (Pulse_Syntax_Base.C_STGhost + ((Pulse_Syntax_Base.comp_inames + c1), + (Pulse_Syntax_Base.st_comp_of_comp + c1))), + d_e1, + (Pulse_Typing.Lift_Neutral_Ghost + (g, c1))))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2800,22 +3053,11 @@ let rec (mk_bind : (Prims.of_int (8)) (Prims.of_int (400)) (Prims.of_int (86))))) - (FStar_Tactics_Effect.lift_div_tac - (fun - uu___8 -> - Pulse_Typing.T_Lift - (g, e1, - c1, - (Pulse_Syntax_Base.C_STGhost - ((Pulse_Syntax_Base.comp_inames - c1), - (Pulse_Syntax_Base.st_comp_of_comp - c1))), - d_e1, - (Pulse_Typing.Lift_Neutral_Ghost - (g, c1))))) + (Obj.magic + uu___12) (fun - uu___8 -> + uu___13 + -> (fun d_e11 -> Obj.magic @@ -2831,17 +3073,22 @@ let rec (mk_bind : () d_e2 () () post_hint)) - uu___8))) - uu___7))) + uu___13))) + uu___11))) | (Pulse_Syntax_Base.C_STGhost - (uu___2, - uu___3), + (uu___5, + uu___6), Pulse_Syntax_Base.C_ST - uu___4) -> + uu___7) -> Obj.magic ( Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___8 + = + lift_ghost_atomic + g e1 c1 + d_e1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2859,11 +3106,9 @@ let rec (mk_bind : (Prims.of_int (406)) (Prims.of_int (82))))) (Obj.magic - (lift_ghost_atomic - g e1 c1 - d_e1)) + uu___8) (fun - uu___5 -> + uu___9 -> (fun d_e11 -> Obj.magic @@ -2876,18 +3121,23 @@ let rec (mk_bind : d_e2 () () post_hint)) - uu___5))) + uu___9))) | (Pulse_Syntax_Base.C_STGhost - (uu___2, - uu___3), + (uu___5, + uu___6), Pulse_Syntax_Base.C_STAtomic - (uu___4, - uu___5, - uu___6)) -> + (uu___7, + uu___8, + uu___9)) -> Obj.magic ( Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___10 + = + lift_ghost_atomic + g e1 c1 + d_e1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2905,11 +3155,10 @@ let rec (mk_bind : (Prims.of_int (406)) (Prims.of_int (82))))) (Obj.magic - (lift_ghost_atomic - g e1 c1 - d_e1)) + uu___10) (fun - uu___7 -> + uu___11 + -> (fun d_e11 -> Obj.magic @@ -2922,12 +3171,12 @@ let rec (mk_bind : d_e2 () () post_hint)) - uu___7))) + uu___11))) | (Pulse_Syntax_Base.C_ST - uu___2, + uu___5, Pulse_Syntax_Base.C_STGhost - (uu___3, - uu___4)) -> + (uu___6, + uu___7)) -> Obj.magic ( Obj.repr @@ -2941,7 +3190,21 @@ let rec (mk_bind : "ghost") else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___9 + = + lift_ghost_atomic + (Pulse_Typing_Env.push_binding + g + (FStar_Pervasives_Native.snd + px) + (FStar_Pervasives_Native.fst + px) + (Pulse_Syntax_Base.comp_res + c1)) + (Pulse_Syntax_Naming.open_st_term_nv + e2 px) c2 + d_e2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -2959,22 +3222,23 @@ let rec (mk_bind : (Prims.of_int (415)) (Prims.of_int (19))))) (Obj.magic - (lift_ghost_atomic - (Pulse_Typing_Env.push_binding - g - (FStar_Pervasives_Native.snd - px) - (FStar_Pervasives_Native.fst - px) - (Pulse_Syntax_Base.comp_res - c1)) - (Pulse_Syntax_Naming.open_st_term_nv - e2 px) c2 - d_e2)) + uu___9) (fun - uu___6 -> + uu___10 + -> (fun d_e21 -> + let uu___10 + = + mk_bind g + pre e1 e2 + c1 + (st_ghost_as_atomic + c2) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -2994,21 +3258,15 @@ let rec (mk_bind : (Prims.of_int (415)) (Prims.of_int (19))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (st_ghost_as_atomic - c2) px - d_e1 () - d_e21 () - () - post_hint)) + uu___10) (fun - uu___6 -> + uu___11 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___7 -> - match uu___6 + uu___12 + -> + match uu___11 with | FStar_Pervasives.Mkdtuple3 @@ -3016,14 +3274,14 @@ let rec (mk_bind : -> FStar_Pervasives.Mkdtuple3 (t, c, d))))) - uu___6)))) + uu___10)))) | (Pulse_Syntax_Base.C_STAtomic - (uu___2, - uu___3, - uu___4), - Pulse_Syntax_Base.C_STGhost (uu___5, - uu___6)) -> + uu___6, + uu___7), + Pulse_Syntax_Base.C_STGhost + (uu___8, + uu___9)) -> Obj.magic ( Obj.repr @@ -3037,7 +3295,21 @@ let rec (mk_bind : "ghost") else Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___11 + = + lift_ghost_atomic + (Pulse_Typing_Env.push_binding + g + (FStar_Pervasives_Native.snd + px) + (FStar_Pervasives_Native.fst + px) + (Pulse_Syntax_Base.comp_res + c1)) + (Pulse_Syntax_Naming.open_st_term_nv + e2 px) c2 + d_e2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3055,22 +3327,23 @@ let rec (mk_bind : (Prims.of_int (415)) (Prims.of_int (19))))) (Obj.magic - (lift_ghost_atomic - (Pulse_Typing_Env.push_binding - g - (FStar_Pervasives_Native.snd - px) - (FStar_Pervasives_Native.fst - px) - (Pulse_Syntax_Base.comp_res - c1)) - (Pulse_Syntax_Naming.open_st_term_nv - e2 px) c2 - d_e2)) + uu___11) (fun - uu___8 -> + uu___12 + -> (fun d_e21 -> + let uu___12 + = + mk_bind g + pre e1 e2 + c1 + (st_ghost_as_atomic + c2) px + d_e1 () + d_e21 () + () + post_hint in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -3090,21 +3363,15 @@ let rec (mk_bind : (Prims.of_int (415)) (Prims.of_int (19))))) (Obj.magic - (mk_bind - g pre e1 - e2 c1 - (st_ghost_as_atomic - c2) px - d_e1 () - d_e21 () - () - post_hint)) + uu___12) (fun - uu___8 -> + uu___13 + -> FStar_Tactics_Effect.lift_div_tac (fun - uu___9 -> - match uu___8 + uu___14 + -> + match uu___13 with | FStar_Pervasives.Mkdtuple3 @@ -3112,9 +3379,9 @@ let rec (mk_bind : -> FStar_Pervasives.Mkdtuple3 (t, c, d))))) - uu___8))))) - uu___2))) uu___2))) - uu___) + uu___12))))) + uu___5))) uu___4))) + uu___1) let (bind_res_and_post_typing : Pulse_Typing_Env.env -> Pulse_Syntax_Base.comp_st -> @@ -3126,6 +3393,10 @@ let (bind_res_and_post_typing : fun c2 -> fun x -> fun post_hint -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_Syntax_Base.st_comp_of_comp c2)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3137,15 +3408,17 @@ let (bind_res_and_post_typing : (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (421)) (Prims.of_int (4)) (Prims.of_int (443)) (Prims.of_int (7))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_Syntax_Base.st_comp_of_comp c2)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun s2 -> match post_hint with | FStar_Pervasives_Native.None -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + Pulse_Checker_Pure.check_universe g + s2.Pulse_Syntax_Base.res in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3162,12 +3435,10 @@ let (bind_res_and_post_typing : (Prims.of_int (13)) (Prims.of_int (436)) (Prims.of_int (7))))) - (Obj.magic - (Pulse_Checker_Pure.check_universe g - s2.Pulse_Syntax_Base.res)) - (fun uu___ -> - (fun uu___ -> - match uu___ with + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + match uu___2 with | Prims.Mkdtuple2 (u, res_typing) -> if Prims.op_Negation @@ -3184,120 +3455,135 @@ let (bind_res_and_post_typing : (Pulse_Syntax_Naming.freevars s2.Pulse_Syntax_Base.post) then - Obj.magic - (FStar_Tactics_Effect.tac_bind + (let uu___4 = + let uu___5 = + Pulse_Syntax_Printer.term_to_string + s2.Pulse_Syntax_Base.post in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (429)) - (Prims.of_int (23)) + (Prims.of_int (95)) (Prims.of_int (429)) - (Prims.of_int (122))))) + (Prims.of_int (121))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (429)) - (Prims.of_int (11)) - (Prims.of_int (429)) - (Prims.of_int (122))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (429)) - (Prims.of_int (95)) - (Prims.of_int (429)) - (Prims.of_int (121))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - s2.Pulse_Syntax_Base.post)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat - (Prims.strcat - "Bound variable " - ( - Prims.strcat - (Prims.string_of_int + "prims.fst" + (Prims.of_int (611)) + (Prims.of_int (19)) + (Prims.of_int (611)) + (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Prims.strcat + (Prims.strcat + "Bound variable " + (Prims.strcat + (Prims.string_of_int x) - " escapes scope in postcondition ")) - (Prims.strcat - uu___2 ""))))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (Pulse_Typing_Env.fail - g - FStar_Pervasives_Native.None - uu___2)) uu___2)) + " escapes scope in postcondition ")) + (Prims.strcat + uu___6 ""))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (429)) + (Prims.of_int (23)) + (Prims.of_int (429)) + (Prims.of_int (122))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (429)) + (Prims.of_int (11)) + (Prims.of_int (429)) + (Prims.of_int (122))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + Obj.magic + (Pulse_Typing_Env.fail + g + FStar_Pervasives_Native.None + uu___5)) uu___5))) else - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (431)) - (Prims.of_int (16)) - (Prims.of_int (431)) - (Prims.of_int (17))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Combinators.fst" - (Prims.of_int (431)) - (Prims.of_int (20)) - (Prims.of_int (435)) - (Prims.of_int (31))))) + (let uu___5 = + Obj.magic (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> x)) - (fun uu___3 -> - (fun y -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (fun uu___6 -> x)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (431)) + (Prims.of_int (16)) + (Prims.of_int (431)) + (Prims.of_int (17))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Combinators.fst" + (Prims.of_int (431)) + (Prims.of_int (20)) + (Prims.of_int (435)) + (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + (fun y -> + let uu___6 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Pulse_Syntax_Naming.open_term_nv + s2.Pulse_Syntax_Base.post + ( + Pulse_Syntax_Base.v_as_nv + y))) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (432)) (Prims.of_int (29)) (Prims.of_int (432)) (Prims.of_int (61))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (432)) (Prims.of_int (64)) (Prims.of_int (435)) (Prims.of_int (31))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Pulse_Syntax_Naming.open_term_nv - s2.Pulse_Syntax_Base.post - ( - Pulse_Syntax_Base.v_as_nv - y))) - (fun uu___3 -> - (fun - s2_post_opened - -> - Obj.magic - ( - FStar_Tactics_Effect.tac_bind + (Obj.magic + uu___6) + (fun uu___7 -> + (fun + s2_post_opened + -> + let uu___7 + = + Pulse_Checker_Pure.check_slprop_with_core + (Pulse_Typing_Env.push_binding + g y + Pulse_Syntax_Base.ppname_default + s2.Pulse_Syntax_Base.res) + s2_post_opened in + Obj.magic + (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -3315,21 +3601,16 @@ let (bind_res_and_post_typing : (Prims.of_int (435)) (Prims.of_int (31))))) (Obj.magic - (Pulse_Checker_Pure.check_slprop_with_core - (Pulse_Typing_Env.push_binding - g y - Pulse_Syntax_Base.ppname_default - s2.Pulse_Syntax_Base.res) - s2_post_opened)) + uu___7) (fun post_typing -> FStar_Tactics_Effect.lift_div_tac (fun - uu___3 -> + uu___8 -> ((), ()))))) - uu___3))) - uu___3))) uu___))) + uu___7))) + uu___6)))) uu___2))) | FStar_Pervasives_Native.Some post -> Obj.magic (Obj.repr @@ -3345,7 +3626,7 @@ let (bind_res_and_post_typing : else Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> ((), ())))))) uu___) + (fun uu___2 -> ((), ())))))) uu___1) let (add_frame : Pulse_Typing_Env.env -> Pulse_Syntax_Base.st_term -> @@ -3459,6 +3740,19 @@ let (comp_for_post_hint : fun pre_typing -> fun post -> fun x -> + let uu___ = + if + FStar_Set.mem x + (Pulse_Syntax_Naming.freevars post.Pulse_Typing.post) + then + Obj.magic + (Obj.repr + (Pulse_Typing_Env.fail g FStar_Pervasives_Native.None + "Impossible: unexpected freevar clash in comp_for_post_hint, please file a bug-report")) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac (fun uu___2 -> ()))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -3470,21 +3764,10 @@ let (comp_for_post_hint : (FStar_Range.mk_range "Pulse.Typing.Combinators.fst" (Prims.of_int (492)) (Prims.of_int (106)) (Prims.of_int (514)) (Prims.of_int (54))))) - (if - FStar_Set.mem x - (Pulse_Syntax_Naming.freevars post.Pulse_Typing.post) - then - Obj.magic - (Obj.repr - (Pulse_Typing_Env.fail g FStar_Pervasives_Native.None - "Impossible: unexpected freevar clash in comp_for_post_hint, please file a bug-report")) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ())))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> match post.Pulse_Typing.effect_annot with | Pulse_Syntax_Base.EffectAnnotSTT -> Prims.Mkdtuple2 diff --git a/src/ocaml/plugin/generated/Pulse_Typing_Env.ml b/src/ocaml/plugin/generated/Pulse_Typing_Env.ml index 0e51ca9fd..5fc04edad 100644 --- a/src/ocaml/plugin/generated/Pulse_Typing_Env.ml +++ b/src/ocaml/plugin/generated/Pulse_Typing_Env.ml @@ -44,7 +44,8 @@ let rec (bindings_with_ppname_aux : | ((x, t)::bs1, n::names1) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = bindings_with_ppname_aux bs1 names1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" @@ -55,10 +56,10 @@ let rec (bindings_with_ppname_aux : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (58)) (Prims.of_int (28)) (Prims.of_int (58)) (Prims.of_int (74))))) - (Obj.magic (bindings_with_ppname_aux bs1 names1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> (n, x, t) :: uu___)))) + (fun uu___2 -> (n, x, t) :: uu___1)))) | uu___ -> Obj.magic (Obj.repr @@ -302,6 +303,7 @@ let (get_context : env -> Pulse_RuntimeUtils.context) = fun g -> g.ctxt let (range_of_env : env -> (Pulse_Syntax_Base.range, unit) FStar_Tactics_Effect.tac_repr) = fun g -> + let uu___ = FStar_Tactics_Unseal.unseal g.ctxt in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -311,9 +313,31 @@ let (range_of_env : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (308)) (Prims.of_int (4)) (Prims.of_int (316)) (Prims.of_int (30))))) - (Obj.magic (FStar_Tactics_Unseal.unseal g.ctxt)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ctx -> + let uu___1 = + FStar_Tactics_Util.tryPick + (fun uu___2 -> + (fun uu___2 -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + match uu___2 with + | (uu___4, r) -> + (match r with + | FStar_Pervasives_Native.None -> + FStar_Pervasives_Native.None + | FStar_Pervasives_Native.Some r1 -> + let uu___5 = + let uu___6 = + Pulse_RuntimeUtils.is_range_zero + r1 in + Prims.op_Negation uu___6 in + if uu___5 + then FStar_Pervasives_Native.Some r1 + else FStar_Pervasives_Native.None)))) + uu___2) ctx in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -326,36 +350,13 @@ let (range_of_env : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (308)) (Prims.of_int (4)) (Prims.of_int (316)) (Prims.of_int (30))))) - (Obj.magic - (FStar_Tactics_Util.tryPick - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with - | (uu___2, r) -> - (match r with - | FStar_Pervasives_Native.None -> - FStar_Pervasives_Native.None - | FStar_Pervasives_Native.Some r1 - -> - if - Prims.op_Negation - (Pulse_RuntimeUtils.is_range_zero - r1) - then - FStar_Pervasives_Native.Some - r1 - else - FStar_Pervasives_Native.None)))) - uu___) ctx)) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - match uu___ with + (fun uu___3 -> + match uu___2 with | FStar_Pervasives_Native.Some r -> r - | uu___2 -> FStar_Range.range_0)))) uu___) + | uu___4 -> FStar_Range.range_0)))) uu___1) let (ctxt_elt_to_string : (Prims.string * Pulse_Syntax_Base.range FStar_Pervasives_Native.option) -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -371,7 +372,8 @@ let (ctxt_elt_to_string : | FStar_Pervasives_Native.Some r -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = FStar_Tactics_V2_Builtins.range_to_string r in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" @@ -382,14 +384,15 @@ let (ctxt_elt_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (FStar_Tactics_V2_Builtins.range_to_string r)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> Prims.strcat (Prims.strcat "" (Prims.strcat (FStar_Pervasives_Native.fst c) - " @ ")) (Prims.strcat uu___ "")))))) uu___ + " @ ")) (Prims.strcat uu___1 "")))))) + uu___ let (ctx_to_string : (Prims.string * Pulse_Syntax_Base.range FStar_Pervasives_Native.option) Prims.list -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) @@ -403,7 +406,24 @@ let (ctx_to_string : | uu___ -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = + let uu___2 = FStar_Tactics_Util.map ctxt_elt_to_string c in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (329)) (Prims.of_int (64)) + (Prims.of_int (329)) (Prims.of_int (92))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (329)) (Prims.of_int (42)) + (Prims.of_int (329)) (Prims.of_int (93))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> FStar_String.concat "\n\t" uu___3)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" @@ -414,32 +434,16 @@ let (ctx_to_string : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (329)) (Prims.of_int (64)) - (Prims.of_int (329)) (Prims.of_int (92))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (329)) (Prims.of_int (42)) - (Prims.of_int (329)) (Prims.of_int (93))))) - (Obj.magic - (FStar_Tactics_Util.map ctxt_elt_to_string c)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_String.concat "\n\t" uu___1)))) - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___3 -> Prims.strcat "\n\tContext:\n\t" - (Prims.strcat uu___1 "")))))) uu___ + (Prims.strcat uu___2 "")))))) uu___ let (ctxt_to_list : env -> (Prims.string Prims.list, unit) FStar_Tactics_Effect.tac_repr) = fun g -> + let uu___ = FStar_Tactics_Unseal.unseal g.ctxt in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -449,13 +453,14 @@ let (ctxt_to_list : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (333)) (Prims.of_int (2)) (Prims.of_int (333)) (Prims.of_int (30))))) - (Obj.magic (FStar_Tactics_Unseal.unseal g.ctxt)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ctx -> - Obj.magic (FStar_Tactics_Util.map ctxt_elt_to_string ctx)) uu___) + Obj.magic (FStar_Tactics_Util.map ctxt_elt_to_string ctx)) uu___1) let (print_context : env -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun g -> + let uu___ = FStar_Tactics_Unseal.unseal g.ctxt in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -465,18 +470,36 @@ let (print_context : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (337)) (Prims.of_int (2)) (Prims.of_int (340)) (Prims.of_int (79))))) - (Obj.magic (FStar_Tactics_Unseal.unseal g.ctxt)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun ctx -> match ctx with | [] -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.lift_div_tac (fun uu___ -> ""))) - | uu___ -> + (FStar_Tactics_Effect.lift_div_tac (fun uu___1 -> ""))) + | uu___1 -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + let uu___3 = ctxt_to_list g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (340)) (Prims.of_int (62)) + (Prims.of_int (340)) (Prims.of_int (78))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (340)) (Prims.of_int (40)) + (Prims.of_int (340)) (Prims.of_int (79))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_String.concat "\n\t" uu___4)) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" @@ -487,40 +510,36 @@ let (print_context : (FStar_Range.mk_range "prims.fst" (Prims.of_int (611)) (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (340)) - (Prims.of_int (62)) - (Prims.of_int (340)) - (Prims.of_int (78))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (340)) - (Prims.of_int (40)) - (Prims.of_int (340)) - (Prims.of_int (79))))) - (Obj.magic (ctxt_to_list g)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_String.concat "\n\t" uu___1)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> + (fun uu___4 -> Prims.strcat "\n\tContext:\n\t" - (Prims.strcat uu___1 "")))))) uu___) + (Prims.strcat uu___3 "")))))) uu___1) let (print_issue : env -> FStar_Issue.issue -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun g -> fun i -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___2 -> + fun uu___1 -> + (fun uu___1 -> + fun uu___2 -> + match uu___2 with + | FStar_Pervasives_Native.None -> + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> "Unknown range"))) + | FStar_Pervasives_Native.Some r -> + Obj.magic + (Obj.repr + (FStar_Tactics_V2_Builtins.range_to_string r))) + uu___2 uu___1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -531,25 +550,74 @@ let (print_issue : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (348)) (Prims.of_int (4)) (Prims.of_int (352)) - (Prims.of_int (101))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - fun uu___ -> - (fun uu___ -> - fun uu___1 -> - match uu___1 with - | FStar_Pervasives_Native.None -> - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> "Unknown range"))) - | FStar_Pervasives_Native.Some r -> - Obj.magic - (Obj.repr - (FStar_Tactics_V2_Builtins.range_to_string r))) - uu___1 uu___)) - (fun uu___ -> + (Prims.of_int (101))))) (Obj.magic uu___) + (fun uu___1 -> (fun range_opt_to_string -> + let uu___1 = + let uu___2 = + let uu___3 = FStar_Tactics_Unseal.unseal (get_context g) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (352)) (Prims.of_int (23)) + (Prims.of_int (352)) (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (352)) (Prims.of_int (22)) + (Prims.of_int (352)) (Prims.of_int (100))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + FStar_Tactics_Util.map + (fun uu___6 -> + (fun i1 -> + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + (i1, + FStar_Pervasives_Native.None)))) + uu___6) (FStar_Issue.context_of_issue i) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (352)) + (Prims.of_int (50)) + (Prims.of_int (352)) + (Prims.of_int (99))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (352)) + (Prims.of_int (22)) + (Prims.of_int (352)) + (Prims.of_int (100))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_List_Tot_Base.op_At uu___4 + uu___6)))) uu___4) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (352)) (Prims.of_int (22)) + (Prims.of_int (352)) (Prims.of_int (100))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (352)) (Prims.of_int (7)) + (Prims.of_int (352)) (Prims.of_int (101))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> Obj.magic (ctx_to_string uu___3)) uu___3) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -562,81 +630,90 @@ let (print_issue : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (348)) (Prims.of_int (4)) (Prims.of_int (352)) (Prims.of_int (101))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (352)) (Prims.of_int (22)) - (Prims.of_int (352)) (Prims.of_int (100))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (352)) (Prims.of_int (7)) - (Prims.of_int (352)) (Prims.of_int (101))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + let uu___5 = + let uu___6 = + range_opt_to_string + (FStar_Issue.range_of_issue i) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (349)) + (Prims.of_int (7)) + (Prims.of_int (349)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + fun x -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat + (Prims.strcat "" + (Prims.strcat + uu___7 " (")) + (Prims.strcat x "): ")) + (Prims.strcat x1 "")) + (Prims.strcat x2 ""))) in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (348)) + (Prims.of_int (4)) (Prims.of_int (352)) - (Prims.of_int (23)) - (Prims.of_int (352)) - (Prims.of_int (47))))) + (Prims.of_int (101))))) (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (348)) + (Prims.of_int (4)) (Prims.of_int (352)) - (Prims.of_int (22)) - (Prims.of_int (352)) - (Prims.of_int (100))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - (get_context g))) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (352)) - (Prims.of_int (50)) - (Prims.of_int (352)) - (Prims.of_int (99))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (352)) - (Prims.of_int (22)) - (Prims.of_int (352)) - (Prims.of_int (100))))) - (Obj.magic - (FStar_Tactics_Util.map - (fun uu___1 -> - (fun i1 -> - Obj.magic - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - (i1, - FStar_Pervasives_Native.None)))) - uu___1) - (FStar_Issue.context_of_issue - i))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_List_Tot_Base.op_At - uu___ uu___1)))) uu___))) - (fun uu___ -> - (fun uu___ -> Obj.magic (ctx_to_string uu___)) - uu___))) - (fun uu___ -> - (fun uu___ -> + (Prims.of_int (101))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + uu___6 (FStar_Issue.level_of_issue i))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (348)) (Prims.of_int (4)) + (Prims.of_int (352)) + (Prims.of_int (101))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (348)) (Prims.of_int (4)) + (Prims.of_int (352)) + (Prims.of_int (101))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + uu___5 (FStar_Issue.render_issue i))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -655,99 +732,11 @@ let (print_issue : (Prims.of_int (4)) (Prims.of_int (352)) (Prims.of_int (101))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (348)) - (Prims.of_int (4)) - (Prims.of_int (352)) - (Prims.of_int (101))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (348)) - (Prims.of_int (4)) - (Prims.of_int (352)) - (Prims.of_int (101))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (348)) - (Prims.of_int (4)) - (Prims.of_int (352)) - (Prims.of_int (101))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (348)) - (Prims.of_int (4)) - (Prims.of_int (352)) - (Prims.of_int (101))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (349)) - (Prims.of_int (7)) - (Prims.of_int (349)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (range_opt_to_string - (FStar_Issue.range_of_issue - i))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - fun x -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - (Prims.strcat - "" - (Prims.strcat - uu___1 - " (")) - (Prims.strcat - x "): ")) - (Prims.strcat - x1 "")) - (Prims.strcat - x2 ""))))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - uu___1 - (FStar_Issue.level_of_issue - i))))) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - uu___1 - (FStar_Issue.render_issue i))))) - (fun uu___1 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> uu___1 uu___)))) uu___))) - uu___) + (fun uu___5 -> uu___4 uu___2)))) uu___2))) + uu___1) let (print_issues : env -> FStar_Issue.issue Prims.list -> @@ -755,6 +744,7 @@ let (print_issues : = fun g -> fun i -> + let uu___ = FStar_Tactics_Util.map (print_issue g) i in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -765,14 +755,134 @@ let (print_issues : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (356)) (Prims.of_int (5)) (Prims.of_int (356)) - (Prims.of_int (49))))) - (Obj.magic (FStar_Tactics_Util.map (print_issue g) i)) - (fun uu___ -> + (Prims.of_int (49))))) (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_String.concat "\n" uu___)) + (fun uu___2 -> FStar_String.concat "\n" uu___1)) let (env_to_string : env -> (Prims.string, unit) FStar_Tactics_Effect.tac_repr) = fun e -> + let uu___ = + let uu___1 = FStar_Tactics_Util.zip e.bs e.names in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (361)) (Prims.of_int (4)) (Prims.of_int (361)) + (Prims.of_int (24))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (359)) (Prims.of_int (11)) + (Prims.of_int (361)) (Prims.of_int (24))))) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + Obj.magic + (FStar_Tactics_Util.map + (fun uu___3 -> + match uu___3 with + | ((n, t), x) -> + let uu___4 = Pulse_Syntax_Printer.term_to_string t in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) (Prims.of_int (72)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) (Prims.of_int (24)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (Obj.magic uu___4) + (fun uu___5 -> + (fun uu___5 -> + let uu___6 = + let uu___7 = + let uu___8 = + FStar_Tactics_Unseal.unseal + x.Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) + (Prims.of_int (52)) + (Prims.of_int (360)) + (Prims.of_int (69))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___8) + (fun uu___9 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___10 -> + fun x1 -> + fun x2 -> + Prims.strcat + (Prims.strcat + (Prims.strcat "" + (Prims.strcat + uu___9 "#")) + (Prims.strcat + (Prims.string_of_int + x1) " : ")) + (Prims.strcat x2 ""))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) + (Prims.of_int (24)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) + (Prims.of_int (24)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> uu___8 n)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) + (Prims.of_int (24)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (360)) + (Prims.of_int (24)) + (Prims.of_int (360)) + (Prims.of_int (111))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> uu___7 uu___5)))) + uu___5)) uu___2)) uu___2) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -782,131 +892,10 @@ let (env_to_string : (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (362)) (Prims.of_int (2)) (Prims.of_int (362)) (Prims.of_int (25))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (361)) (Prims.of_int (4)) - (Prims.of_int (361)) (Prims.of_int (24))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (359)) (Prims.of_int (11)) - (Prims.of_int (361)) (Prims.of_int (24))))) - (Obj.magic (FStar_Tactics_Util.zip e.bs e.names)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (FStar_Tactics_Util.map - (fun uu___1 -> - match uu___1 with - | ((n, t), x) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (72)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (24)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string t)) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (24)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (24)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (24)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (24)) - (Prims.of_int (360)) - (Prims.of_int (111))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (360)) - (Prims.of_int (52)) - (Prims.of_int (360)) - (Prims.of_int (69))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - x.Pulse_Syntax_Base.name)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x1 -> - fun x2 -> - Prims.strcat - (Prims.strcat - (Prims.strcat - "" - (Prims.strcat - uu___3 - "#")) - (Prims.strcat - (Prims.string_of_int - x1) " : ")) - (Prims.strcat - x2 ""))))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> uu___3 n)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> uu___3 uu___2)))) - uu___2)) uu___)) uu___))) + (Obj.magic uu___) (fun bs -> FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> FStar_String.concat "\n " bs)) + (fun uu___1 -> FStar_String.concat "\n " bs)) let rec separate_map : 'a . FStar_Pprint.document -> @@ -930,7 +919,8 @@ let rec separate_map : | x::xs -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = f x in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" @@ -941,9 +931,34 @@ let rec separate_map : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (373)) (Prims.of_int (13)) (Prims.of_int (373)) (Prims.of_int (49))))) - (Obj.magic (f x)) - (fun uu___ -> - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + let uu___2 = + let uu___3 = separate_map sep f xs in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (373)) + (Prims.of_int (28)) + (Prims.of_int (373)) + (Prims.of_int (49))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (373)) + (Prims.of_int (20)) + (Prims.of_int (373)) + (Prims.of_int (49))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Pprint.op_Hat_Slash_Hat + sep uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -962,159 +977,153 @@ let rec separate_map : (Prims.of_int (13)) (Prims.of_int (373)) (Prims.of_int (49))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (373)) - (Prims.of_int (28)) - (Prims.of_int (373)) - (Prims.of_int (49))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (373)) - (Prims.of_int (20)) - (Prims.of_int (373)) - (Prims.of_int (49))))) - (Obj.magic - (separate_map sep f xs)) - (fun uu___1 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Slash_Hat - sep uu___1)))) - (fun uu___1 -> + (Obj.magic uu___2) + (fun uu___3 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> - FStar_Pprint.op_Hat_Hat uu___ - uu___1)))) uu___)))) uu___2 + (fun uu___4 -> + FStar_Pprint.op_Hat_Hat uu___1 + uu___3)))) uu___1)))) uu___2 uu___1 uu___ let (env_to_doc : env -> (FStar_Pprint.document, unit) FStar_Tactics_Effect.tac_repr) = fun e -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (377)) - (Prims.of_int (4)) (Prims.of_int (380)) (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (382)) - (Prims.of_int (2)) (Prims.of_int (382)) (Prims.of_int (56))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun uu___1 -> - match uu___1 with - | ((n, t), x) -> - FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (379)) (Prims.of_int (8)) - (Prims.of_int (379)) (Prims.of_int (65))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (378)) (Prims.of_int (6)) - (Prims.of_int (380)) (Prims.of_int (52))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + fun uu___2 -> + match uu___2 with + | ((n, t), x) -> + let uu___3 = + let uu___4 = + let uu___5 = + FStar_Tactics_Unseal.unseal + x.Pulse_Syntax_Base.name in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (379)) (Prims.of_int (23)) - (Prims.of_int (379)) (Prims.of_int (64))))) + (Prims.of_int (379)) (Prims.of_int (24)) + (Prims.of_int (379)) (Prims.of_int (39))))) (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (379)) (Prims.of_int (8)) - (Prims.of_int (379)) (Prims.of_int (65))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind + (FStar_Range.mk_range "prims.fst" + (Prims.of_int (611)) (Prims.of_int (19)) + (Prims.of_int (611)) (Prims.of_int (31))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + Prims.strcat uu___6 + (Prims.strcat "#" (Prims.string_of_int n)))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (379)) (Prims.of_int (23)) + (Prims.of_int (379)) (Prims.of_int (64))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (379)) (Prims.of_int (8)) + (Prims.of_int (379)) (Prims.of_int (65))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> FStar_Pprint.doc_of_string uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (379)) (Prims.of_int (8)) + (Prims.of_int (379)) (Prims.of_int (65))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (378)) (Prims.of_int (6)) + (Prims.of_int (380)) (Prims.of_int (52))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun uu___4 -> + let uu___5 = + let uu___6 = Pulse_Syntax_Printer.term_to_doc t in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (379)) - (Prims.of_int (24)) - (Prims.of_int (379)) - (Prims.of_int (39))))) + (Prims.of_int (380)) + (Prims.of_int (15)) + (Prims.of_int (380)) + (Prims.of_int (51))))) (FStar_Sealed.seal (Obj.magic - (FStar_Range.mk_range "prims.fst" - (Prims.of_int (611)) - (Prims.of_int (19)) - (Prims.of_int (611)) - (Prims.of_int (31))))) - (Obj.magic - (FStar_Tactics_Unseal.unseal - x.Pulse_Syntax_Base.name)) - (fun uu___2 -> + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (380)) + (Prims.of_int (8)) + (Prims.of_int (380)) + (Prims.of_int (52))))) + (Obj.magic uu___6) + (fun uu___7 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - Prims.strcat uu___2 - (Prims.strcat "#" - (Prims.string_of_int n)))))) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - FStar_Pprint.doc_of_string uu___2)))) - (fun uu___2 -> - (fun uu___2 -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (380)) - (Prims.of_int (8)) - (Prims.of_int (380)) - (Prims.of_int (52))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (378)) - (Prims.of_int (6)) - (Prims.of_int (380)) - (Prims.of_int (52))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (380)) - (Prims.of_int (15)) - (Prims.of_int (380)) - (Prims.of_int (51))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (380)) - (Prims.of_int (8)) - (Prims.of_int (380)) - (Prims.of_int (52))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_doc t)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_Pprint.align uu___3)))) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - FStar_Pprint.infix (Prims.of_int (2)) - Prims.int_one FStar_Pprint.colon - uu___2 uu___3)))) uu___2))) - (fun uu___ -> + (fun uu___8 -> FStar_Pprint.align uu___7)) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (380)) + (Prims.of_int (8)) + (Prims.of_int (380)) + (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (378)) + (Prims.of_int (6)) + (Prims.of_int (380)) + (Prims.of_int (52))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + FStar_Pprint.infix + (Prims.of_int (2)) Prims.int_one + FStar_Pprint.colon uu___4 uu___6)))) + uu___4))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (377)) + (Prims.of_int (4)) (Prims.of_int (380)) (Prims.of_int (52))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (382)) + (Prims.of_int (2)) (Prims.of_int (382)) (Prims.of_int (56))))) + (Obj.magic uu___) + (fun uu___1 -> (fun pp1 -> + let uu___1 = + let uu___2 = FStar_Tactics_Util.zip e.bs e.names in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (382)) (Prims.of_int (35)) + (Prims.of_int (382)) (Prims.of_int (55))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (382)) (Prims.of_int (11)) + (Prims.of_int (382)) (Prims.of_int (56))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + Obj.magic (separate_map FStar_Pprint.comma pp1 uu___3)) + uu___3) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1127,27 +1136,10 @@ let (env_to_doc : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (382)) (Prims.of_int (2)) (Prims.of_int (382)) (Prims.of_int (56))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (382)) (Prims.of_int (35)) - (Prims.of_int (382)) (Prims.of_int (55))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (382)) (Prims.of_int (11)) - (Prims.of_int (382)) (Prims.of_int (56))))) - (Obj.magic (FStar_Tactics_Util.zip e.bs e.names)) - (fun uu___ -> - (fun uu___ -> - Obj.magic - (separate_map FStar_Pprint.comma pp1 uu___)) - uu___))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> FStar_Pprint.brackets uu___)))) uu___) + (fun uu___3 -> FStar_Pprint.brackets uu___2)))) uu___1) let (get_range : env -> Pulse_Syntax_Base.range FStar_Pervasives_Native.option -> @@ -1158,6 +1150,10 @@ let (get_range : match r with | FStar_Pervasives_Native.None -> range_of_env g | FStar_Pervasives_Native.Some r1 -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> Pulse_RuntimeUtils.is_range_zero r1)) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1169,17 +1165,16 @@ let (get_range : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (388)) (Prims.of_int (6)) (Prims.of_int (390)) (Prims.of_int (12))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> Pulse_RuntimeUtils.is_range_zero r1)) - (fun uu___ -> - (fun uu___ -> - if uu___ + (Obj.magic uu___) + (fun uu___1 -> + (fun uu___1 -> + if uu___1 then Obj.magic (Obj.repr (range_of_env g)) else Obj.magic (Obj.repr (FStar_Tactics_Effect.lift_div_tac - (fun uu___2 -> r1)))) uu___) + (fun uu___3 -> r1)))) uu___1) let fail_doc_env : 'a . Prims.bool -> @@ -1192,6 +1187,7 @@ let fail_doc_env : fun g -> fun r -> fun msg -> + let uu___ = get_range g r in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1203,9 +1199,172 @@ let fail_doc_env : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (393)) (Prims.of_int (26)) (Prims.of_int (406)) (Prims.of_int (43))))) - (Obj.magic (get_range g r)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun r1 -> + let uu___1 = + let uu___2 = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___3 -> + fun d -> + FStar_Pprint.nest (Prims.of_int (2)) + (FStar_Pprint.op_Hat_Hat + FStar_Pprint.hardline + (FStar_Pprint.align d)))) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (395)) (Prims.of_int (19)) + (Prims.of_int (395)) (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (395)) (Prims.of_int (50)) + (Prims.of_int (402)) (Prims.of_int (12))))) + (Obj.magic uu___2) + (fun uu___3 -> + (fun indent -> + let uu___3 = + if with_env + then + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> true))) + else + Obj.magic + (Obj.repr + (Pulse_Config.debug_flag "env_on_err")) in + Obj.magic + (FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (397)) + (Prims.of_int (6)) + (Prims.of_int (398)) + (Prims.of_int (47))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (400)) + (Prims.of_int (4)) + (Prims.of_int (402)) + (Prims.of_int (12))))) + (Obj.magic uu___3) + (fun uu___4 -> + (fun with_env1 -> + if with_env1 + then + Obj.magic + (Obj.repr + (let uu___4 = + let uu___5 = + let uu___6 = + let uu___7 = + env_to_doc g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (65)) + (Prims.of_int (401)) + (Prims.of_int (79))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (58)) + (Prims.of_int (401)) + (Prims.of_int (79))))) + (Obj.magic uu___7) + (fun uu___8 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___9 -> + indent uu___8)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (58)) + (Prims.of_int (401)) + (Prims.of_int (79))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (16)) + (Prims.of_int (401)) + (Prims.of_int (79))))) + (Obj.magic uu___6) + (fun uu___7 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___8 -> + FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string + "In typing environment:") + uu___7)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (16)) + (Prims.of_int (401)) + (Prims.of_int (79))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (15)) + (Prims.of_int (401)) + (Prims.of_int (80))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + [uu___6])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (15)) + (Prims.of_int (401)) + (Prims.of_int (80))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (401)) + (Prims.of_int (9)) + (Prims.of_int (401)) + (Prims.of_int (80))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_List_Tot_Base.op_At + msg uu___5)))) + else + Obj.magic + (Obj.repr + (FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> msg)))) + uu___4))) uu___3) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1218,182 +1377,37 @@ let fail_doc_env : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (403)) (Prims.of_int (4)) (Prims.of_int (406)) (Prims.of_int (43))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (395)) - (Prims.of_int (19)) - (Prims.of_int (395)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (395)) - (Prims.of_int (50)) - (Prims.of_int (402)) - (Prims.of_int (12))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun d -> - FStar_Pprint.nest (Prims.of_int (2)) - (FStar_Pprint.op_Hat_Hat - FStar_Pprint.hardline - (FStar_Pprint.align d)))) - (fun uu___ -> - (fun indent -> - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (397)) - (Prims.of_int (6)) - (Prims.of_int (398)) - (Prims.of_int (47))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (400)) - (Prims.of_int (4)) - (Prims.of_int (402)) - (Prims.of_int (12))))) - (if with_env - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> true))) - else - Obj.magic - (Obj.repr - (Pulse_Config.debug_flag - "env_on_err"))) - (fun uu___ -> - (fun with_env1 -> - if with_env1 - then - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (15)) - (Prims.of_int (401)) - (Prims.of_int (80))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (9)) - (Prims.of_int (401)) - (Prims.of_int (80))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (16)) - (Prims.of_int (401)) - (Prims.of_int (79))))) - (FStar_Sealed.seal - (Obj.magic - ( - FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (15)) - (Prims.of_int (401)) - (Prims.of_int (80))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (58)) - (Prims.of_int (401)) - (Prims.of_int (79))))) - ( - FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (16)) - (Prims.of_int (401)) - (Prims.of_int (79))))) - ( - Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (65)) - (Prims.of_int (401)) - (Prims.of_int (79))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (401)) - (Prims.of_int (58)) - (Prims.of_int (401)) - (Prims.of_int (79))))) - (Obj.magic - (env_to_doc - g)) - (fun - uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - indent - uu___)))) - ( - fun uu___ - -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string - "In typing environment:") - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun - uu___1 -> - [uu___])))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_List_Tot_Base.op_At - msg uu___)))) - else - Obj.magic - (Obj.repr - (FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> msg)))) - uu___))) uu___))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun msg1 -> + let uu___2 = + let uu___3 = ctxt_to_list g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (404)) + (Prims.of_int (65)) + (Prims.of_int (404)) + (Prims.of_int (81))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Env.fst" + (Prims.of_int (404)) + (Prims.of_int (14)) + (Prims.of_int (404)) + (Prims.of_int (81))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> + FStar_Issue.mk_issue_doc "Error" + msg1 + (FStar_Pervasives_Native.Some r1) + FStar_Pervasives_Native.None + uu___4)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1412,36 +1426,12 @@ let fail_doc_env : (Prims.of_int (2)) (Prims.of_int (406)) (Prims.of_int (43))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (404)) - (Prims.of_int (65)) - (Prims.of_int (404)) - (Prims.of_int (81))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (404)) - (Prims.of_int (14)) - (Prims.of_int (404)) - (Prims.of_int (81))))) - (Obj.magic (ctxt_to_list g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Issue.mk_issue_doc - "Error" msg1 - (FStar_Pervasives_Native.Some - r1) - FStar_Pervasives_Native.None - uu___)))) - (fun uu___ -> + (Obj.magic uu___2) + (fun uu___3 -> (fun issue -> + let uu___3 = + FStar_Tactics_V2_Builtins.log_issues + [issue] in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1460,15 +1450,13 @@ let fail_doc_env : (Prims.of_int (2)) (Prims.of_int (406)) (Prims.of_int (43))))) - (Obj.magic - (FStar_Tactics_V2_Builtins.log_issues - [issue])) - (fun uu___ -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_V2_Derived.fail_at "Pulse checker failed" (FStar_Pervasives_Native.Some - r1)))) uu___))) uu___))) - uu___) + r1)))) uu___3))) uu___2))) + uu___1) let fail_doc : 'a . env -> @@ -1485,6 +1473,7 @@ let (warn_doc : fun g -> fun r -> fun msg -> + let uu___ = get_range g r in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1496,9 +1485,29 @@ let (warn_doc : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (409)) (Prims.of_int (26)) (Prims.of_int (411)) (Prims.of_int (22))))) - (Obj.magic (get_range g r)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun r1 -> + let uu___1 = + let uu___2 = ctxt_to_list g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (410)) (Prims.of_int (67)) + (Prims.of_int (410)) (Prims.of_int (83))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (410)) (Prims.of_int (14)) + (Prims.of_int (410)) (Prims.of_int (83))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Issue.mk_issue_doc "Warning" msg + (FStar_Pervasives_Native.Some r1) + FStar_Pervasives_Native.None uu___3)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1511,30 +1520,12 @@ let (warn_doc : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (411)) (Prims.of_int (2)) (Prims.of_int (411)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (410)) (Prims.of_int (67)) - (Prims.of_int (410)) (Prims.of_int (83))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (410)) (Prims.of_int (14)) - (Prims.of_int (410)) (Prims.of_int (83))))) - (Obj.magic (ctxt_to_list g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Issue.mk_issue_doc "Warning" msg - (FStar_Pervasives_Native.Some r1) - FStar_Pervasives_Native.None uu___)))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun issue -> Obj.magic (FStar_Tactics_V2_Builtins.log_issues [issue])) - uu___))) uu___) + uu___2))) uu___1) let (info_doc : env -> Pulse_Syntax_Base.range FStar_Pervasives_Native.option -> @@ -1544,6 +1535,7 @@ let (info_doc : fun g -> fun r -> fun msg -> + let uu___ = get_range g r in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1555,9 +1547,29 @@ let (info_doc : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (414)) (Prims.of_int (26)) (Prims.of_int (416)) (Prims.of_int (22))))) - (Obj.magic (get_range g r)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun r1 -> + let uu___1 = + let uu___2 = ctxt_to_list g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (415)) (Prims.of_int (64)) + (Prims.of_int (415)) (Prims.of_int (80))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (415)) (Prims.of_int (14)) + (Prims.of_int (415)) (Prims.of_int (80))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> + FStar_Issue.mk_issue_doc "Info" msg + (FStar_Pervasives_Native.Some r1) + FStar_Pervasives_Native.None uu___3)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1570,30 +1582,12 @@ let (info_doc : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (416)) (Prims.of_int (2)) (Prims.of_int (416)) (Prims.of_int (22))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (415)) (Prims.of_int (64)) - (Prims.of_int (415)) (Prims.of_int (80))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (415)) (Prims.of_int (14)) - (Prims.of_int (415)) (Prims.of_int (80))))) - (Obj.magic (ctxt_to_list g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Issue.mk_issue_doc "Info" msg - (FStar_Pervasives_Native.Some r1) - FStar_Pervasives_Native.None uu___)))) - (fun uu___ -> + (Obj.magic uu___1) + (fun uu___2 -> (fun issue -> Obj.magic (FStar_Tactics_V2_Builtins.log_issues [issue])) - uu___))) uu___) + uu___2))) uu___1) let (info_doc_env : env -> Pulse_Syntax_Base.range FStar_Pervasives_Native.option -> @@ -1603,6 +1597,14 @@ let (info_doc_env : fun g -> fun r -> fun msg -> + let uu___ = + Obj.magic + (FStar_Tactics_Effect.lift_div_tac + (fun uu___1 -> + fun d -> + FStar_Pprint.nest (Prims.of_int (2)) + (FStar_Pprint.op_Hat_Hat FStar_Pprint.hardline + (FStar_Pprint.align d)))) in FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic @@ -1614,14 +1616,77 @@ let (info_doc_env : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (420)) (Prims.of_int (2)) (Prims.of_int (422)) (Prims.of_int (3))))) - (FStar_Tactics_Effect.lift_div_tac - (fun uu___ -> - fun d -> - FStar_Pprint.nest (Prims.of_int (2)) - (FStar_Pprint.op_Hat_Hat FStar_Pprint.hardline - (FStar_Pprint.align d)))) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> (fun indent -> + let uu___1 = + let uu___2 = + let uu___3 = + let uu___4 = + let uu___5 = env_to_doc g in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (54)) + (Prims.of_int (421)) (Prims.of_int (68))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (47)) + (Prims.of_int (421)) (Prims.of_int (68))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> indent uu___6)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (47)) + (Prims.of_int (421)) (Prims.of_int (68))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (5)) + (Prims.of_int (421)) (Prims.of_int (68))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + FStar_Pprint.op_Hat_Hat + (FStar_Pprint.doc_of_string + "In typing environment:") uu___5)) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (5)) + (Prims.of_int (421)) (Prims.of_int (68))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (4)) + (Prims.of_int (421)) (Prims.of_int (69))))) + (Obj.magic uu___3) + (fun uu___4 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___5 -> [uu___4])) in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (421)) (Prims.of_int (4)) + (Prims.of_int (421)) (Prims.of_int (69))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range "Pulse.Typing.Env.fst" + (Prims.of_int (420)) (Prims.of_int (15)) + (Prims.of_int (422)) (Prims.of_int (3))))) + (Obj.magic uu___2) + (fun uu___3 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___4 -> FStar_List_Tot_Base.op_At msg uu___3)) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -1634,93 +1699,10 @@ let (info_doc_env : (FStar_Range.mk_range "Pulse.Typing.Env.fst" (Prims.of_int (420)) (Prims.of_int (2)) (Prims.of_int (422)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (421)) (Prims.of_int (4)) - (Prims.of_int (421)) (Prims.of_int (69))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range "Pulse.Typing.Env.fst" - (Prims.of_int (420)) (Prims.of_int (15)) - (Prims.of_int (422)) (Prims.of_int (3))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (5)) - (Prims.of_int (421)) - (Prims.of_int (68))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (4)) - (Prims.of_int (421)) - (Prims.of_int (69))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (47)) - (Prims.of_int (421)) - (Prims.of_int (68))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (5)) - (Prims.of_int (421)) - (Prims.of_int (68))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (54)) - (Prims.of_int (421)) - (Prims.of_int (68))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Env.fst" - (Prims.of_int (421)) - (Prims.of_int (47)) - (Prims.of_int (421)) - (Prims.of_int (68))))) - (Obj.magic (env_to_doc g)) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> indent uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_Pprint.op_Hat_Hat - (FStar_Pprint.doc_of_string - "In typing environment:") - uu___)))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> [uu___])))) - (fun uu___ -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> - FStar_List_Tot_Base.op_At msg uu___)))) - (fun uu___ -> - (fun uu___ -> Obj.magic (info_doc g r uu___)) uu___))) - uu___) + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> Obj.magic (info_doc g r uu___2)) + uu___2))) uu___1) let fail : 'a . env -> diff --git a/src/ocaml/plugin/generated/Pulse_Typing_Printer.ml b/src/ocaml/plugin/generated/Pulse_Typing_Printer.ml index 770eee7ed..2d517f8d5 100644 --- a/src/ocaml/plugin/generated/Pulse_Typing_Printer.ml +++ b/src/ocaml/plugin/generated/Pulse_Typing_Printer.ml @@ -19,7 +19,15 @@ let rec (print_st_typing : (g1, x, q, b, u, body, c1, tt, body_typing) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = + print_st_typing + (Pulse_Typing_Env.push_binding g1 x + Pulse_Syntax_Base.ppname_default + b.Pulse_Syntax_Base.binder_ty) + (Pulse_Syntax_Naming.open_st_term_nv body + ((b.Pulse_Syntax_Base.binder_ppname), x)) + c1 body_typing in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -35,20 +43,12 @@ let rec (print_st_typing : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (print_st_typing - (Pulse_Typing_Env.push_binding g1 x - Pulse_Syntax_Base.ppname_default - b.Pulse_Syntax_Base.binder_ty) - (Pulse_Syntax_Naming.open_st_term_nv - body - ((b.Pulse_Syntax_Base.binder_ppname), - x)) c1 body_typing)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> Prims.strcat "(T_Abs ... " - (Prims.strcat uu___ ")"))))) + (Prims.strcat uu___1 ")"))))) | Pulse_Typing.T_STApp (uu___, uu___1, uu___2, uu___3, uu___4, uu___5, uu___6, uu___7) @@ -69,7 +69,9 @@ let rec (print_st_typing : (uu___, uu___1, uu___2, uu___3, d1, uu___4) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___5 = + print_st_typing uu___ uu___1 uu___2 d1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -85,19 +87,26 @@ let rec (print_st_typing : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic - (print_st_typing uu___ uu___1 uu___2 d1)) - (fun uu___5 -> + (Obj.magic uu___5) + (fun uu___6 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___6 -> + (fun uu___7 -> Prims.strcat "(T_Lift " - (Prims.strcat uu___5 ")"))))) + (Prims.strcat uu___6 ")"))))) | Pulse_Typing.T_Bind (g1, e1, e2, c1, c2, b, x, c3, d1, uu___, d2, uu___1) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___2 = + print_st_typing + (Pulse_Typing_Env.push_binding g1 x + Pulse_Syntax_Base.ppname_default + (Pulse_Syntax_Base.comp_res c1)) + (Pulse_Syntax_Naming.open_st_term_nv e2 + ((b.Pulse_Syntax_Base.binder_ppname), x)) + c2 d2 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -114,16 +123,39 @@ let rec (print_st_typing : (Prims.of_int (6)) (Prims.of_int (40)) (Prims.of_int (79))))) - (Obj.magic - (print_st_typing - (Pulse_Typing_Env.push_binding g1 x - Pulse_Syntax_Base.ppname_default - (Pulse_Syntax_Base.comp_res c1)) - (Pulse_Syntax_Naming.open_st_term_nv e2 - ((b.Pulse_Syntax_Base.binder_ppname), - x)) c2 d2)) - (fun uu___2 -> - (fun uu___2 -> + (Obj.magic uu___2) + (fun uu___3 -> + (fun uu___3 -> + let uu___4 = + let uu___5 = + print_st_typing g1 e1 c1 d1 in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Printer.fst" + (Prims.of_int (40)) + (Prims.of_int (38)) + (Prims.of_int (40)) + (Prims.of_int (58))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___5) + (fun uu___6 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___7 -> + fun x1 -> + Prims.strcat + (Prims.strcat "(T_Bind " + (Prims.strcat uu___6 + " ")) + (Prims.strcat x1 ")"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -142,46 +174,16 @@ let rec (print_st_typing : (Prims.of_int (6)) (Prims.of_int (40)) (Prims.of_int (79))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Printer.fst" - (Prims.of_int (40)) - (Prims.of_int (38)) - (Prims.of_int (40)) - (Prims.of_int (58))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (print_st_typing g1 e1 c1 - d1)) - (fun uu___3 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> - fun x1 -> - Prims.strcat - (Prims.strcat - "(T_Bind " - (Prims.strcat - uu___3 " ")) - (Prims.strcat x1 - ")"))))) - (fun uu___3 -> + (Obj.magic uu___4) + (fun uu___5 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___4 -> uu___3 uu___2)))) - uu___2))) + (fun uu___6 -> uu___5 uu___3)))) + uu___3))) | Pulse_Typing.T_Frame (g1, e, c1, frame, uu___, body) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___1 = print_st_typing g1 e c1 body in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -198,9 +200,41 @@ let rec (print_st_typing : (Prims.of_int (6)) (Prims.of_int (43)) (Prims.of_int (105))))) - (Obj.magic (print_st_typing g1 e c1 body)) - (fun uu___1 -> - (fun uu___1 -> + (Obj.magic uu___1) + (fun uu___2 -> + (fun uu___2 -> + let uu___3 = + let uu___4 = + Pulse_Syntax_Printer.term_to_string + frame in + FStar_Tactics_Effect.tac_bind + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "Pulse.Typing.Printer.fst" + (Prims.of_int (43)) + (Prims.of_int (39)) + (Prims.of_int (43)) + (Prims.of_int (82))))) + (FStar_Sealed.seal + (Obj.magic + (FStar_Range.mk_range + "FStar.Printf.fst" + (Prims.of_int (122)) + (Prims.of_int (8)) + (Prims.of_int (124)) + (Prims.of_int (44))))) + (Obj.magic uu___4) + (fun uu___5 -> + FStar_Tactics_Effect.lift_div_tac + (fun uu___6 -> + fun x -> + Prims.strcat + (Prims.strcat + "(T_Frame " + (Prims.strcat uu___5 + " ")) + (Prims.strcat x ")"))) in Obj.magic (FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal @@ -219,42 +253,11 @@ let rec (print_st_typing : (Prims.of_int (6)) (Prims.of_int (43)) (Prims.of_int (105))))) - (Obj.magic - (FStar_Tactics_Effect.tac_bind - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "Pulse.Typing.Printer.fst" - (Prims.of_int (43)) - (Prims.of_int (39)) - (Prims.of_int (43)) - (Prims.of_int (82))))) - (FStar_Sealed.seal - (Obj.magic - (FStar_Range.mk_range - "FStar.Printf.fst" - (Prims.of_int (122)) - (Prims.of_int (8)) - (Prims.of_int (124)) - (Prims.of_int (44))))) - (Obj.magic - (Pulse_Syntax_Printer.term_to_string - frame)) - (fun uu___2 -> - FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> - fun x -> - Prims.strcat - (Prims.strcat - "(T_Frame " - (Prims.strcat - uu___2 " ")) - (Prims.strcat x - ")"))))) - (fun uu___2 -> + (Obj.magic uu___3) + (fun uu___4 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___3 -> uu___2 uu___1)))) - uu___1))) + (fun uu___5 -> uu___4 uu___2)))) + uu___2))) | Pulse_Typing.T_If (uu___, uu___1, uu___2, uu___3, uu___4, uu___5, uu___6, uu___7, uu___8, uu___9) @@ -274,7 +277,8 @@ let rec (print_st_typing : | Pulse_Typing.T_Equiv (g1, e, c1, c', d1, eq) -> Obj.magic (Obj.repr - (FStar_Tactics_Effect.tac_bind + (let uu___ = print_st_typing g1 e c1 d1 in + FStar_Tactics_Effect.tac_bind (FStar_Sealed.seal (Obj.magic (FStar_Range.mk_range @@ -290,12 +294,12 @@ let rec (print_st_typing : (Prims.of_int (19)) (Prims.of_int (611)) (Prims.of_int (31))))) - (Obj.magic (print_st_typing g1 e c1 d1)) - (fun uu___ -> + (Obj.magic uu___) + (fun uu___1 -> FStar_Tactics_Effect.lift_div_tac - (fun uu___1 -> + (fun uu___2 -> Prims.strcat "(T_Equiv " - (Prims.strcat uu___ ")"))))) + (Prims.strcat uu___1 ")"))))) | Pulse_Typing.T_IntroPure (uu___, uu___1, uu___2, uu___3) -> Obj.magic