diff --git a/stage0/src/Lean/Elab/Tactic/Binders.lean b/stage0/src/Lean/Elab/Tactic/Binders.lean new file mode 100644 index 0000000000..295156ff12 --- /dev/null +++ b/stage0/src/Lean/Elab/Tactic/Binders.lean @@ -0,0 +1,34 @@ +/- +Copyright (c) 2020 Microsoft Corporation. All rights reserved. +Released under Apache 2.0 license as described in the file LICENSE. +Authors: Leonardo de Moura +-/ +import Lean.Elab.Tactic.Basic + +namespace Lean +namespace Elab +namespace Tactic + +private def liftTermBinderSyntax : Macro := +fun stx => do + hole ← `(?_); + match stx.getKind with + | Name.str (Name.str p "Tactic" _) s _ => + let kind := mkNameStr (mkNameStr p "Term") s; + let termStx := Syntax.node kind (stx.getArgs ++ #[mkAtomFrom stx "; ", hole]); + `(tactic| refine $termStx) + | _ => Macro.throwError stx "unexpected binder syntax" + +@[builtinMacro Lean.Parser.Tactic.have] def expandHaveTactic : Macro := liftTermBinderSyntax +@[builtinMacro Lean.Parser.Tactic.let] def expandLetTactic : Macro := liftTermBinderSyntax +@[builtinMacro Lean.Parser.Tactic.«let!»] def expandLetBangTactic : Macro := liftTermBinderSyntax +@[builtinMacro Lean.Parser.Tactic.suffices] def expandSufficesTactic : Macro := liftTermBinderSyntax + +@[builtinMacro Lean.Parser.Tactic.show] def expandShowTactic : Macro := +fun stx => + let type := stx.getArg 1; + `(tactic| refine (show $type from ?_)) + +end Tactic +end Elab +end Lean diff --git a/stage0/stdlib/Lean/Elab/Tactic/Binders.c b/stage0/stdlib/Lean/Elab/Tactic/Binders.c new file mode 100644 index 0000000000..96a52fb194 --- /dev/null +++ b/stage0/stdlib/Lean/Elab/Tactic/Binders.c @@ -0,0 +1,845 @@ +// Lean compiler output +// Module: Lean.Elab.Tactic.Binders +// Imports: Init Lean.Elab.Tactic.Basic +#include +#if defined(__clang__) +#pragma clang diagnostic ignored "-Wunused-parameter" +#pragma clang diagnostic ignored "-Wunused-label" +#elif defined(__GNUC__) && !defined(__CLANG__) +#pragma GCC diagnostic ignored "-Wunused-parameter" +#pragma GCC diagnostic ignored "-Wunused-label" +#pragma GCC diagnostic ignored "-Wunused-but-set-variable" +#endif +#ifdef __cplusplus +extern "C" { +#endif +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__3; +extern lean_object* l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__5; +lean_object* l_Lean_Elab_Tactic_expandLetTactic(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__15; +lean_object* l_Lean_Elab_Tactic_expandHaveTactic(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__14; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3; +extern lean_object* l_Prod_HasRepr___rarg___closed__1; +extern lean_object* l_Array_empty___closed__1; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2; +lean_object* l_Lean_Elab_Tactic_expandLetTactic___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic(lean_object*); +lean_object* lean_array_push(lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__6; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetTactic(lean_object*); +lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l___private_Lean_Elab_Term_5__hasCDot___main___closed__1; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1; +lean_object* l_Lean_Elab_Tactic_expandLetBangTactic(lean_object*, lean_object*, lean_object*); +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__7; +lean_object* lean_name_mk_string(lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__10; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3; +extern lean_object* l_Lean_mkAppStx___closed__6; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1; +lean_object* l_Lean_Elab_Tactic_expandSufficesTactic___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__8; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5; +extern lean_object* l_Lean_Parser_Error_toString___closed__2; +lean_object* l_Lean_Elab_Tactic_expandHaveTactic___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Tactic_expandShowTactic(lean_object*, lean_object*, lean_object*); +lean_object* l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_Parser_FirstTokens_toStr___closed__3; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__11; +lean_object* l_Lean_Elab_Tactic_expandSufficesTactic(lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_nullKind___closed__2; +lean_object* l_Lean_mkAtomFrom(lean_object*, lean_object*); +extern lean_object* l_Option_HasRepr___rarg___closed__3; +lean_object* l_Lean_Elab_Tactic_expandLetBangTactic___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3; +lean_object* l_Lean_Macro_throwError___rarg(lean_object*, lean_object*, lean_object*, lean_object*); +extern lean_object* l_Lean_mkAppStx___closed__5; +extern lean_object* l_Lean_Elab_macroAttribute; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__12; +extern lean_object* l_Lean_SourceInfo_inhabited___closed__1; +lean_object* l_Lean_Syntax_getArgs(lean_object*); +lean_object* l_Lean_Syntax_getKind(lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__13; +extern lean_object* l_Lean_mkAppStx___closed__9; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1; +extern lean_object* l_Lean_Elab_Tactic_evalIntro___closed__29; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(lean_object*, lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandShowTactic(lean_object*); +lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*); +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic(lean_object*); +extern lean_object* l___regBuiltin_Lean_Elab_Term_elabSyntheticHole___closed__2; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__4; +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic(lean_object*); +extern lean_object* l___private_Lean_Meta_Tactic_Util_1__regTraceClasses___closed__1; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__9; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__2; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9; +lean_object* l_Lean_Elab_Tactic_expandShowTactic___boxed(lean_object*, lean_object*, lean_object*); +lean_object* l_Lean_Elab_Tactic_expandShowTactic___closed__1; +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4; +uint8_t lean_string_dec_eq(lean_object*, lean_object*); +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l_Lean_Parser_FirstTokens_toStr___closed__3; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2; +x_2 = l_Lean_Elab_Tactic_evalIntro___closed__29; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l___regBuiltin_Lean_Elab_Term_elabSyntheticHole___closed__2; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("unexpected binder syntax"); +return x_1; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("refine"); +return x_1; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +lean_inc(x_1); +x_4 = l_Lean_Syntax_getKind(x_1); +if (lean_obj_tag(x_4) == 1) +{ +lean_object* x_5; +x_5 = lean_ctor_get(x_4, 0); +lean_inc(x_5); +if (lean_obj_tag(x_5) == 1) +{ +lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; uint8_t x_10; +x_6 = lean_ctor_get(x_4, 1); +lean_inc(x_6); +lean_dec(x_4); +x_7 = lean_ctor_get(x_5, 0); +lean_inc(x_7); +x_8 = lean_ctor_get(x_5, 1); +lean_inc(x_8); +lean_dec(x_5); +x_9 = l___private_Lean_Meta_Tactic_Util_1__regTraceClasses___closed__1; +x_10 = lean_string_dec_eq(x_8, x_9); +lean_dec(x_8); +if (x_10 == 0) +{ +lean_object* x_11; lean_object* x_12; +lean_dec(x_7); +lean_dec(x_6); +x_11 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5; +x_12 = l_Lean_Macro_throwError___rarg(x_1, x_11, x_2, x_3); +return x_12; +} +else +{ +lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; +x_13 = l_Lean_mkAppStx___closed__5; +x_14 = lean_name_mk_string(x_7, x_13); +x_15 = lean_name_mk_string(x_14, x_6); +x_16 = l_Lean_Syntax_getArgs(x_1); +x_17 = l_Lean_Parser_Error_toString___closed__2; +x_18 = l_Lean_mkAtomFrom(x_1, x_17); +lean_dec(x_1); +x_19 = l_Lean_mkAppStx___closed__9; +x_20 = lean_array_push(x_19, x_18); +x_21 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4; +x_22 = lean_array_push(x_20, x_21); +x_23 = lean_unsigned_to_nat(0u); +x_24 = l_Array_iterateMAux___main___at_Array_append___spec__1___rarg(x_22, x_22, x_23, x_16); +lean_dec(x_22); +x_25 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_25, 0, x_15); +lean_ctor_set(x_25, 1, x_24); +x_26 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9; +x_27 = lean_array_push(x_26, x_25); +x_28 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7; +x_29 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_29, 0, x_28); +lean_ctor_set(x_29, 1, x_27); +x_30 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_30, 0, x_29); +lean_ctor_set(x_30, 1, x_3); +return x_30; +} +} +else +{ +lean_object* x_31; lean_object* x_32; +lean_dec(x_5); +lean_dec(x_4); +x_31 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5; +x_32 = l_Lean_Macro_throwError___rarg(x_1, x_31, x_2, x_3); +return x_32; +} +} +else +{ +lean_object* x_33; lean_object* x_34; +lean_dec(x_4); +x_33 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5; +x_34 = l_Lean_Macro_throwError___rarg(x_1, x_33, x_2, x_3); +return x_34; +} +} +} +lean_object* l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* l_Lean_Elab_Tactic_expandHaveTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(x_1, x_2, x_3); +return x_4; +} +} +lean_object* l_Lean_Elab_Tactic_expandHaveTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Elab_Tactic_expandHaveTactic(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("have"); +return x_1; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_expandHaveTactic___boxed), 3, 0); +return x_1; +} +} +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Elab_macroAttribute; +x_3 = l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2; +x_4 = l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3; +x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); +return x_5; +} +} +lean_object* l_Lean_Elab_Tactic_expandLetTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(x_1, x_2, x_3); +return x_4; +} +} +lean_object* l_Lean_Elab_Tactic_expandLetTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Elab_Tactic_expandLetTactic(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("let"); +return x_1; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_expandLetTactic___boxed), 3, 0); +return x_1; +} +} +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetTactic(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Elab_macroAttribute; +x_3 = l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2; +x_4 = l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3; +x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); +return x_5; +} +} +lean_object* l_Lean_Elab_Tactic_expandLetBangTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(x_1, x_2, x_3); +return x_4; +} +} +lean_object* l_Lean_Elab_Tactic_expandLetBangTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Elab_Tactic_expandLetBangTactic(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("let!"); +return x_1; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_expandLetBangTactic___boxed), 3, 0); +return x_1; +} +} +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Elab_macroAttribute; +x_3 = l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2; +x_4 = l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3; +x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); +return x_5; +} +} +lean_object* l_Lean_Elab_Tactic_expandSufficesTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax(x_1, x_2, x_3); +return x_4; +} +} +lean_object* l_Lean_Elab_Tactic_expandSufficesTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Elab_Tactic_expandSufficesTactic(x_1, x_2, x_3); +lean_dec(x_2); +return x_4; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("suffices"); +return x_1; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_expandSufficesTactic___boxed), 3, 0); +return x_1; +} +} +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Elab_macroAttribute; +x_3 = l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2; +x_4 = l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3; +x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); +return x_5; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l_Prod_HasRepr___rarg___closed__1; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__2() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__1; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__3() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("show"); +return x_1; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__4() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_mkAppStx___closed__6; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__3; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__5() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__3; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__6() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__5; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__7() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("fromTerm"); +return x_1; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__8() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_mkAppStx___closed__6; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__7; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__9() { +_start: +{ +lean_object* x_1; +x_1 = lean_mk_string("from"); +return x_1; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__10() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__9; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__11() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Array_empty___closed__1; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__10; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__12() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_expandShowTactic___closed__11; +x_2 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4; +x_3 = lean_array_push(x_1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__13() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_expandShowTactic___closed__8; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__12; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__14() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_nullKind___closed__2; +x_2 = l_Array_empty___closed__1; +x_3 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* _init_l_Lean_Elab_Tactic_expandShowTactic___closed__15() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_SourceInfo_inhabited___closed__1; +x_2 = l_Option_HasRepr___rarg___closed__3; +x_3 = lean_alloc_ctor(2, 2, 0); +lean_ctor_set(x_3, 0, x_1); +lean_ctor_set(x_3, 1, x_2); +return x_3; +} +} +lean_object* l_Lean_Elab_Tactic_expandShowTactic(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; lean_object* x_5; lean_object* x_6; lean_object* x_7; lean_object* x_8; lean_object* x_9; lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28; +x_4 = lean_unsigned_to_nat(1u); +x_5 = l_Lean_Syntax_getArg(x_1, x_4); +x_6 = l_Lean_Elab_Tactic_expandShowTactic___closed__6; +x_7 = lean_array_push(x_6, x_5); +x_8 = l_Lean_Elab_Tactic_expandShowTactic___closed__13; +x_9 = lean_array_push(x_7, x_8); +x_10 = l_Lean_Elab_Tactic_expandShowTactic___closed__4; +x_11 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_11, 0, x_10); +lean_ctor_set(x_11, 1, x_9); +x_12 = l_Array_empty___closed__1; +x_13 = lean_array_push(x_12, x_11); +x_14 = l_Lean_Elab_Tactic_expandShowTactic___closed__14; +x_15 = lean_array_push(x_13, x_14); +x_16 = l_Lean_nullKind___closed__2; +x_17 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_17, 0, x_16); +lean_ctor_set(x_17, 1, x_15); +x_18 = l_Lean_Elab_Tactic_expandShowTactic___closed__2; +x_19 = lean_array_push(x_18, x_17); +x_20 = l_Lean_Elab_Tactic_expandShowTactic___closed__15; +x_21 = lean_array_push(x_19, x_20); +x_22 = l___private_Lean_Elab_Term_5__hasCDot___main___closed__1; +x_23 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_23, 0, x_22); +lean_ctor_set(x_23, 1, x_21); +x_24 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9; +x_25 = lean_array_push(x_24, x_23); +x_26 = l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7; +x_27 = lean_alloc_ctor(1, 2, 0); +lean_ctor_set(x_27, 0, x_26); +lean_ctor_set(x_27, 1, x_25); +x_28 = lean_alloc_ctor(0, 2, 0); +lean_ctor_set(x_28, 0, x_27); +lean_ctor_set(x_28, 1, x_3); +return x_28; +} +} +lean_object* l_Lean_Elab_Tactic_expandShowTactic___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) { +_start: +{ +lean_object* x_4; +x_4 = l_Lean_Elab_Tactic_expandShowTactic(x_1, x_2, x_3); +lean_dec(x_2); +lean_dec(x_1); +return x_4; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1() { +_start: +{ +lean_object* x_1; lean_object* x_2; lean_object* x_3; +x_1 = l_Lean_Elab_Tactic_mkTacticAttribute___closed__8; +x_2 = l_Lean_Elab_Tactic_expandShowTactic___closed__3; +x_3 = lean_name_mk_string(x_1, x_2); +return x_3; +} +} +lean_object* _init_l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2() { +_start: +{ +lean_object* x_1; +x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_expandShowTactic___boxed), 3, 0); +return x_1; +} +} +lean_object* l___regBuiltin_Lean_Elab_Tactic_expandShowTactic(lean_object* x_1) { +_start: +{ +lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; +x_2 = l_Lean_Elab_macroAttribute; +x_3 = l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1; +x_4 = l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2; +x_5 = l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(x_2, x_3, x_4, x_1); +return x_5; +} +} +lean_object* initialize_Init(lean_object*); +lean_object* initialize_Lean_Elab_Tactic_Basic(lean_object*); +static bool _G_initialized = false; +lean_object* initialize_Lean_Elab_Tactic_Binders(lean_object* w) { +lean_object * res; +if (_G_initialized) return lean_mk_io_result(lean_box(0)); +_G_initialized = true; +res = initialize_Init(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +res = initialize_Lean_Elab_Tactic_Basic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__1); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__2); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__3); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__4); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__5); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__6); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__7); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__8); +l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9 = _init_l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9(); +lean_mark_persistent(l___private_Lean_Elab_Tactic_Binders_1__liftTermBinderSyntax___closed__9); +l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__1); +l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__2); +l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3 = _init_l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic___closed__3); +res = l___regBuiltin_Lean_Elab_Tactic_expandHaveTactic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__1); +l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__2); +l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetTactic___closed__3); +res = l___regBuiltin_Lean_Elab_Tactic_expandLetTactic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__1); +l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__2); +l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3 = _init_l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic___closed__3); +res = l___regBuiltin_Lean_Elab_Tactic_expandLetBangTactic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__1); +l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__2); +l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3 = _init_l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic___closed__3); +res = l___regBuiltin_Lean_Elab_Tactic_expandSufficesTactic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +l_Lean_Elab_Tactic_expandShowTactic___closed__1 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__1(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__1); +l_Lean_Elab_Tactic_expandShowTactic___closed__2 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__2(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__2); +l_Lean_Elab_Tactic_expandShowTactic___closed__3 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__3(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__3); +l_Lean_Elab_Tactic_expandShowTactic___closed__4 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__4(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__4); +l_Lean_Elab_Tactic_expandShowTactic___closed__5 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__5(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__5); +l_Lean_Elab_Tactic_expandShowTactic___closed__6 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__6(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__6); +l_Lean_Elab_Tactic_expandShowTactic___closed__7 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__7(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__7); +l_Lean_Elab_Tactic_expandShowTactic___closed__8 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__8(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__8); +l_Lean_Elab_Tactic_expandShowTactic___closed__9 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__9(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__9); +l_Lean_Elab_Tactic_expandShowTactic___closed__10 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__10(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__10); +l_Lean_Elab_Tactic_expandShowTactic___closed__11 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__11(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__11); +l_Lean_Elab_Tactic_expandShowTactic___closed__12 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__12(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__12); +l_Lean_Elab_Tactic_expandShowTactic___closed__13 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__13(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__13); +l_Lean_Elab_Tactic_expandShowTactic___closed__14 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__14(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__14); +l_Lean_Elab_Tactic_expandShowTactic___closed__15 = _init_l_Lean_Elab_Tactic_expandShowTactic___closed__15(); +lean_mark_persistent(l_Lean_Elab_Tactic_expandShowTactic___closed__15); +l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__1); +l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2 = _init_l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2(); +lean_mark_persistent(l___regBuiltin_Lean_Elab_Tactic_expandShowTactic___closed__2); +res = l___regBuiltin_Lean_Elab_Tactic_expandShowTactic(lean_io_mk_world()); +if (lean_io_result_is_error(res)) return res; +lean_dec_ref(res); +return lean_mk_io_result(lean_box(0)); +} +#ifdef __cplusplus +} +#endif