chore: update stage0
This commit is contained in:
parent
a926cd1698
commit
2ec40e91da
10 changed files with 5255 additions and 754 deletions
6
stage0/src/Lean/Elab/PreDefinition/Eqns.lean
generated
6
stage0/src/Lean/Elab/PreDefinition/Eqns.lean
generated
|
|
@ -315,7 +315,11 @@ partial def mkUnfoldProof (declName : Name) (mvarId : MVarId) : MetaM Unit := do
|
|||
eqs.anyM fun eq => commitWhen do
|
||||
try
|
||||
let subgoals ← apply mvarId (← mkConstWithFreshMVarLevels eq)
|
||||
subgoals.allM assumptionCore
|
||||
subgoals.allM fun subgoal => do
|
||||
if (← isExprMVarAssigned subgoal) then
|
||||
return true -- Subgoal was already solved. This can happen when there are dependencies between the subgoals
|
||||
else
|
||||
assumptionCore subgoal
|
||||
catch _ =>
|
||||
return false
|
||||
let rec go (mvarId : MVarId) : MetaM Unit := do
|
||||
|
|
|
|||
33
stage0/src/Lean/Meta/KAbstract.lean
generated
33
stage0/src/Lean/Meta/KAbstract.lean
generated
|
|
@ -34,11 +34,42 @@ def kabstract (e : Expr) (p : Expr) (occs : Occurrences := Occurrences.all) : Me
|
|||
let i ← get
|
||||
set (i+1)
|
||||
if occs.contains i then
|
||||
pure (mkBVar offset)
|
||||
return mkBVar offset
|
||||
else
|
||||
visitChildren ()
|
||||
else
|
||||
visitChildren ()
|
||||
visit e 0 |>.run' 1
|
||||
|
||||
/--
|
||||
Similar to `kabstract`, but only abstracts occurrences of `p` s.t. `pred parent? p` is true where `parent?`
|
||||
is the parent expression for `p` if any.
|
||||
-/
|
||||
partial def kabstractWithPred (e : Expr) (p : Expr) (pred : (parent? : Option Expr) → (e : Expr) → MetaM Bool) : MetaM Expr := do
|
||||
let e ← instantiateMVars e
|
||||
let pHeadIdx := p.toHeadIndex
|
||||
let pNumArgs := p.headNumArgs
|
||||
let rec visit (parent? : Option Expr) (e : Expr) (offset : Nat) : MetaM Expr := do
|
||||
let visitChildren : Unit → MetaM Expr := fun _ => do
|
||||
match e with
|
||||
| Expr.app .. => e.withApp fun f args => return mkAppN (← visit e f offset) (← args.mapM (visit e . offset))
|
||||
| Expr.mdata _ b _ => return e.updateMData! (← visit e b offset)
|
||||
| Expr.proj _ _ b _ => return e.updateProj! (← visit e b offset)
|
||||
| Expr.letE _ t v b _ => return e.updateLet! (← visit e t offset) (← visit e v offset) (← visit e b (offset+1))
|
||||
| Expr.lam _ d b _ => return e.updateLambdaE! (← visit e d offset) (← visit e b (offset+1))
|
||||
| Expr.forallE _ d b _ => return e.updateForallE! (← visit e d offset) (← visit e b (offset+1))
|
||||
| e => return e
|
||||
if e.hasLooseBVars then
|
||||
visitChildren ()
|
||||
else if e.toHeadIndex != pHeadIdx || e.headNumArgs != pNumArgs then
|
||||
visitChildren ()
|
||||
else if (← isDefEq e p) then
|
||||
if (← pred parent? e) then
|
||||
return mkBVar offset
|
||||
else
|
||||
visitChildren ()
|
||||
else
|
||||
visitChildren ()
|
||||
visit none e 0
|
||||
|
||||
end Lean.Meta
|
||||
|
|
|
|||
7
stage0/src/Lean/Meta/Tactic/Generalize.lean
generated
7
stage0/src/Lean/Meta/Tactic/Generalize.lean
generated
|
|
@ -16,7 +16,10 @@ structure GeneralizeArg where
|
|||
hName? : Option Name := none
|
||||
deriving Inhabited
|
||||
|
||||
partial def generalize (mvarId : MVarId) (args : Array GeneralizeArg) : MetaM (Array FVarId × MVarId) :=
|
||||
partial def generalize
|
||||
(mvarId : MVarId) (args : Array GeneralizeArg)
|
||||
(pred : (parent? : Option Expr) → (e : Expr) → MetaM Bool := fun _ _ => return true)
|
||||
: MetaM (Array FVarId × MVarId) :=
|
||||
withMVarContext mvarId do
|
||||
checkNotAssigned mvarId `generalize
|
||||
let tag ← getMVarTag mvarId
|
||||
|
|
@ -28,7 +31,7 @@ partial def generalize (mvarId : MVarId) (args : Array GeneralizeArg) : MetaM (A
|
|||
let eType ← instantiateMVars (← inferType e)
|
||||
let type ← go (i+1)
|
||||
let xName ← if let some xName := arg.xName? then pure xName else mkFreshUserName `x
|
||||
return Lean.mkForall xName BinderInfo.default eType (← kabstract type e)
|
||||
return Lean.mkForall xName BinderInfo.default eType (← kabstractWithPred type e pred)
|
||||
else
|
||||
return target
|
||||
let targetNew ← go 0
|
||||
|
|
|
|||
33
stage0/src/Lean/Meta/Tactic/Split.lean
generated
33
stage0/src/Lean/Meta/Tactic/Split.lean
generated
|
|
@ -70,7 +70,38 @@ private def generalizeMatchDiscrs (mvarId : MVarId) (discrs : Array Expr) : Meta
|
|||
else
|
||||
let discrsToGeneralize := discrs.filter fun d => !d.isFVar
|
||||
let args ← discrsToGeneralize.mapM fun d => return { expr := d, hName? := (← mkFreshUserName `h) : GeneralizeArg }
|
||||
let (fvarIdsNew, mvarId) ← generalize mvarId args
|
||||
/-
|
||||
We should only generalize `discrs` occurrences as `match`-expression discriminants.
|
||||
For example, given the following goal.
|
||||
```
|
||||
x : Nat
|
||||
⊢ (match g x with
|
||||
| 0 => 1
|
||||
| Nat.succ y => g x) =
|
||||
2 * x + 1
|
||||
```
|
||||
we should not generalize the `g x` in the rhs of the second alternative, and the two resulting goals
|
||||
for the `split` tactic should be
|
||||
```
|
||||
case h_1
|
||||
x x✝ : Nat
|
||||
h✝ : g x = 0
|
||||
⊢ 1 = 2 * x + 1
|
||||
|
||||
case h_2
|
||||
x x✝ y✝ : Nat
|
||||
h✝ : g x = Nat.succ y✝
|
||||
⊢ g x = 2 * x + 1
|
||||
```
|
||||
-/
|
||||
let isDiscr (parent? : Option Expr) (e : Expr) : MetaM Bool := do
|
||||
let some parent := parent? | return false
|
||||
let some info := isMatcherAppCore? (← getEnv) parent | return false
|
||||
let args := parent.getAppArgs
|
||||
for i in [info.getFirstDiscrPos : info.getFirstDiscrPos + info.numDiscrs] do
|
||||
if i < args.size && args[i] == e then return true
|
||||
return false
|
||||
let (fvarIdsNew, mvarId) ← generalize mvarId args isDiscr
|
||||
let mut result := #[]
|
||||
let mut j := 0
|
||||
for discr in discrs do
|
||||
|
|
|
|||
153
stage0/stdlib/Lean/Elab/PreDefinition/Eqns.c
generated
153
stage0/stdlib/Lean/Elab/PreDefinition/Eqns.c
generated
|
|
@ -74,6 +74,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_withMVarContext___at___private_Lean_Elab_Pr
|
|||
lean_object* l_Lean_throwError___at___private_Lean_Meta_Basic_0__Lean_Meta_processPostponedStep___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_findMatchToSplit_x3f___lambda__2___closed__5;
|
||||
lean_object* l_Lean_Meta_forallTelescopeReducing___at_Lean_Meta_getParamNames___spec__2___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1;
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Eqns_removeUnusedEqnHypotheses_go___spec__5___at_Lean_Elab_Eqns_removeUnusedEqnHypotheses_go___spec__6___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_findCore___at_Lean_Meta_ToHide_isMarked___spec__1(lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_foldrMUnsafe_fold___at___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_saveEqn___spec__5___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -224,9 +225,8 @@ LEAN_EXPORT lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_E
|
|||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_splitMatch_x3f_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_saveEqn_isIrrelevant___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Eqns_simpEqnType___spec__1___at_Lean_Elab_Eqns_simpEqnType___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2;
|
||||
lean_object* l_Lean_Expr_replaceFVar(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822_(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_4863_(lean_object*);
|
||||
static lean_object* l_Lean_addTrace___at_Lean_Elab_Eqns_mkEqnTypes_go___spec__2___closed__5;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_saveEqn_pushDecl___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -310,7 +310,6 @@ static lean_object* l_Lean_Elab_Eqns_deltaLHS___lambda__2___closed__3;
|
|||
static lean_object* l_Lean_Elab_Eqns_tryURefl___closed__3;
|
||||
static lean_object* l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__10;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_deltaRHS_x3f___lambda__1___boxed(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1;
|
||||
LEAN_EXPORT uint8_t l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_shouldUseSimpMatch___lambda__1(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_commitWhenSome_x3f___at_Lean_Elab_Eqns_funext_x3f___spec__1___at_Lean_Elab_Eqns_funext_x3f___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_mkFVar(lean_object*);
|
||||
|
|
@ -421,6 +420,7 @@ static lean_object* l_Lean_Elab_Eqns_tryURefl___closed__2;
|
|||
LEAN_EXPORT lean_object* l_Lean_mkFreshId___at_Lean_Elab_Eqns_removeUnusedEqnHypotheses_go___spec__14___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_shouldUseSimpMatch___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_List_allM___at_Lean_Elab_Eqns_mkUnfoldProof___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_isExprMVarAssigned(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_shouldUseSimpMatch___lambda__2___closed__2;
|
||||
lean_object* l_List_mapTRAux___at_Lean_mkConstWithLevelParams___spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Eqns_simpEqnType_collect___lambda__1___closed__2;
|
||||
|
|
@ -441,6 +441,7 @@ lean_object* l_Lean_addMessageContextFull___at_Lean_Meta_instAddMessageContextMe
|
|||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Eqns_removeUnusedEqnHypotheses_go___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_getUnfoldFor_x3f(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_HashMap_insert___at_Lean_Meta_ToHide_visitVisibleExpr_visit___spec__3(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_mkEqnTypes(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT uint8_t l_Array_anyMUnsafe_any___at___private_Lean_Elab_PreDefinition_Eqns_0__Lean_Elab_Eqns_findMatchToSplit_x3f___spec__1(lean_object*, lean_object*, size_t, size_t);
|
||||
lean_object* lean_name_mk_numeral(lean_object*, lean_object*);
|
||||
|
|
@ -21495,96 +21496,120 @@ return x_9;
|
|||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11; lean_object* x_12;
|
||||
lean_object* x_10; lean_object* x_11; lean_object* x_12; lean_object* x_13; uint8_t x_14;
|
||||
x_10 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_10);
|
||||
x_11 = lean_ctor_get(x_1, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_1);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_12 = l_Lean_Meta_assumptionCore(x_10, x_2, x_3, x_4, x_5, x_6);
|
||||
if (lean_obj_tag(x_12) == 0)
|
||||
{
|
||||
lean_object* x_13; uint8_t x_14;
|
||||
lean_inc(x_10);
|
||||
x_12 = l_Lean_Meta_isExprMVarAssigned(x_10, x_2, x_3, x_4, x_5, x_6);
|
||||
x_13 = lean_ctor_get(x_12, 0);
|
||||
lean_inc(x_13);
|
||||
x_14 = lean_unbox(x_13);
|
||||
lean_dec(x_13);
|
||||
if (x_14 == 0)
|
||||
{
|
||||
uint8_t x_15;
|
||||
lean_object* x_15; lean_object* x_16;
|
||||
x_15 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_12);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_16 = l_Lean_Meta_assumptionCore(x_10, x_2, x_3, x_4, x_5, x_15);
|
||||
if (lean_obj_tag(x_16) == 0)
|
||||
{
|
||||
lean_object* x_17; uint8_t x_18;
|
||||
x_17 = lean_ctor_get(x_16, 0);
|
||||
lean_inc(x_17);
|
||||
x_18 = lean_unbox(x_17);
|
||||
lean_dec(x_17);
|
||||
if (x_18 == 0)
|
||||
{
|
||||
uint8_t x_19;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_15 = !lean_is_exclusive(x_12);
|
||||
if (x_15 == 0)
|
||||
x_19 = !lean_is_exclusive(x_16);
|
||||
if (x_19 == 0)
|
||||
{
|
||||
lean_object* x_16; uint8_t x_17; lean_object* x_18;
|
||||
x_16 = lean_ctor_get(x_12, 0);
|
||||
lean_dec(x_16);
|
||||
x_17 = 0;
|
||||
x_18 = lean_box(x_17);
|
||||
lean_ctor_set(x_12, 0, x_18);
|
||||
return x_12;
|
||||
lean_object* x_20; uint8_t x_21; lean_object* x_22;
|
||||
x_20 = lean_ctor_get(x_16, 0);
|
||||
lean_dec(x_20);
|
||||
x_21 = 0;
|
||||
x_22 = lean_box(x_21);
|
||||
lean_ctor_set(x_16, 0, x_22);
|
||||
return x_16;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_19; uint8_t x_20; lean_object* x_21; lean_object* x_22;
|
||||
x_19 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_12);
|
||||
x_20 = 0;
|
||||
x_21 = lean_box(x_20);
|
||||
x_22 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_22, 0, x_21);
|
||||
lean_ctor_set(x_22, 1, x_19);
|
||||
return x_22;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_23;
|
||||
x_23 = lean_ctor_get(x_12, 1);
|
||||
lean_object* x_23; uint8_t x_24; lean_object* x_25; lean_object* x_26;
|
||||
x_23 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_16);
|
||||
x_24 = 0;
|
||||
x_25 = lean_box(x_24);
|
||||
x_26 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
lean_ctor_set(x_26, 1, x_23);
|
||||
return x_26;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_27;
|
||||
x_27 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_16);
|
||||
x_1 = x_11;
|
||||
x_6 = x_23;
|
||||
x_6 = x_27;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_25;
|
||||
uint8_t x_29;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_25 = !lean_is_exclusive(x_12);
|
||||
if (x_25 == 0)
|
||||
x_29 = !lean_is_exclusive(x_16);
|
||||
if (x_29 == 0)
|
||||
{
|
||||
return x_12;
|
||||
return x_16;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_26; lean_object* x_27; lean_object* x_28;
|
||||
x_26 = lean_ctor_get(x_12, 0);
|
||||
x_27 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_27);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_12);
|
||||
x_28 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_28, 0, x_26);
|
||||
lean_ctor_set(x_28, 1, x_27);
|
||||
return x_28;
|
||||
lean_object* x_30; lean_object* x_31; lean_object* x_32;
|
||||
x_30 = lean_ctor_get(x_16, 0);
|
||||
x_31 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_31);
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_16);
|
||||
x_32 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_32, 0, x_30);
|
||||
lean_ctor_set(x_32, 1, x_31);
|
||||
return x_32;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_33;
|
||||
lean_dec(x_10);
|
||||
x_33 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_12);
|
||||
x_1 = x_11;
|
||||
x_6 = x_33;
|
||||
goto _start;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_anyMUnsafe_any___at_Lean_Elab_Eqns_mkUnfoldProof___spec__2___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
|
|
@ -23989,7 +24014,7 @@ x_8 = l_Std_PersistentHashMap_insertAux___at_Lean_Elab_Eqns_getUnfoldFor_x3f___s
|
|||
return x_8;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1() {
|
||||
static lean_object* _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
|
|
@ -23997,21 +24022,21 @@ x_1 = lean_mk_string("unfoldEqn");
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2() {
|
||||
static lean_object* _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1; lean_object* x_2; lean_object* x_3;
|
||||
x_1 = l_Lean_Elab_Eqns_simpEqnType___lambda__2___closed__4;
|
||||
x_2 = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1;
|
||||
x_2 = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1;
|
||||
x_3 = lean_name_mk_string(x_1, x_2);
|
||||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789_(lean_object* x_1) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822_(lean_object* x_1) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_2; lean_object* x_3;
|
||||
x_2 = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2;
|
||||
x_2 = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2;
|
||||
x_3 = l_Lean_registerTraceClass(x_2, x_1);
|
||||
if (lean_obj_tag(x_3) == 0)
|
||||
{
|
||||
|
|
@ -24304,11 +24329,11 @@ l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__9 = _init_l_Lean_Elab_Eqns_getUnfold
|
|||
lean_mark_persistent(l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__9);
|
||||
l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__10 = _init_l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__10();
|
||||
lean_mark_persistent(l_Lean_Elab_Eqns_getUnfoldFor_x3f___closed__10);
|
||||
l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1 = _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__1);
|
||||
l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2 = _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789____closed__2);
|
||||
res = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5789_(lean_io_mk_world());
|
||||
l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1 = _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__1);
|
||||
l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2 = _init_l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2();
|
||||
lean_mark_persistent(l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822____closed__2);
|
||||
res = l_Lean_Elab_Eqns_initFn____x40_Lean_Elab_PreDefinition_Eqns___hyg_5822_(lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
return lean_io_result_mk_ok(lean_box(0));
|
||||
|
|
|
|||
198
stage0/stdlib/Lean/Elab/Tactic/Generalize.c
generated
198
stage0/stdlib/Lean/Elab/Tactic/Generalize.c
generated
|
|
@ -16,6 +16,7 @@ extern "C" {
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__7;
|
||||
size_t lean_usize_add(size_t, size_t);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__7;
|
||||
static lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__2;
|
||||
lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
||||
lean_object* lean_array_uget(lean_object*, size_t);
|
||||
|
|
@ -23,7 +24,6 @@ lean_object* lean_array_uset(lean_object*, size_t, lean_object*);
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__14;
|
||||
lean_object* lean_array_get_size(lean_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_withMainContext___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_KeyedDeclsAttribute_addBuiltin___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t lean_usize_dec_lt(size_t, size_t);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__6;
|
||||
|
|
@ -31,7 +31,7 @@ LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRang
|
|||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Elab_Tactic_evalGeneralize___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__10;
|
||||
lean_object* l_Lean_Syntax_getId(lean_object*);
|
||||
lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_addBuiltinDeclarationRanges(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_getMainGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -41,14 +41,16 @@ size_t lean_usize_of_nat(lean_object*);
|
|||
extern lean_object* l_Lean_Elab_Tactic_tacticElabAttribute;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__12;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__4;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__5;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__3___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Syntax_getSepArgs(lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__11;
|
||||
LEAN_EXPORT lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__13;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__3;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_elabTerm(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Lean_Syntax_isNone(lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__6;
|
||||
|
|
@ -59,6 +61,7 @@ lean_object* l_Lean_Syntax_getArg(lean_object*, lean_object*);
|
|||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__8;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__1;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__2;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__3(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__5;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize_declRange___closed__1;
|
||||
static lean_object* l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__15;
|
||||
|
|
@ -233,7 +236,27 @@ return x_57;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_8; lean_object* x_9; lean_object* x_10;
|
||||
x_8 = 1;
|
||||
x_9 = lean_box(x_8);
|
||||
x_10 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_10, 0, x_9);
|
||||
lean_ctor_set(x_10, 1, x_7);
|
||||
return x_10;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalGeneralize___lambda__1___boxed), 7, 0);
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_11;
|
||||
|
|
@ -248,85 +271,86 @@ lean_inc(x_2);
|
|||
x_11 = l_Lean_Elab_Tactic_getMainGoal(x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14;
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
x_12 = lean_ctor_get(x_11, 0);
|
||||
lean_inc(x_12);
|
||||
x_13 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_11);
|
||||
x_14 = l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1;
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
x_14 = l_Lean_Meta_generalize(x_12, x_1, x_6, x_7, x_8, x_9, x_13);
|
||||
if (lean_obj_tag(x_14) == 0)
|
||||
x_15 = l_Lean_Meta_generalize(x_12, x_1, x_14, x_6, x_7, x_8, x_9, x_13);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20;
|
||||
x_15 = lean_ctor_get(x_14, 0);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_14, 1);
|
||||
lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21;
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_14);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
x_18 = lean_box(0);
|
||||
x_19 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_19, 0, x_17);
|
||||
lean_ctor_set(x_19, 1, x_18);
|
||||
x_20 = l_Lean_Elab_Tactic_replaceMainGoal(x_19, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_16);
|
||||
if (lean_obj_tag(x_20) == 0)
|
||||
x_18 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
x_19 = lean_box(0);
|
||||
x_20 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_18);
|
||||
lean_ctor_set(x_20, 1, x_19);
|
||||
x_21 = l_Lean_Elab_Tactic_replaceMainGoal(x_20, x_2, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_17);
|
||||
if (lean_obj_tag(x_21) == 0)
|
||||
{
|
||||
uint8_t x_21;
|
||||
x_21 = !lean_is_exclusive(x_20);
|
||||
if (x_21 == 0)
|
||||
uint8_t x_22;
|
||||
x_22 = !lean_is_exclusive(x_21);
|
||||
if (x_22 == 0)
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23;
|
||||
x_22 = lean_ctor_get(x_20, 0);
|
||||
lean_dec(x_22);
|
||||
x_23 = lean_box(0);
|
||||
lean_ctor_set(x_20, 0, x_23);
|
||||
return x_20;
|
||||
lean_object* x_23; lean_object* x_24;
|
||||
x_23 = lean_ctor_get(x_21, 0);
|
||||
lean_dec(x_23);
|
||||
x_24 = lean_box(0);
|
||||
lean_ctor_set(x_21, 0, x_24);
|
||||
return x_21;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_24; lean_object* x_25; lean_object* x_26;
|
||||
x_24 = lean_ctor_get(x_20, 1);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_20);
|
||||
x_25 = lean_box(0);
|
||||
x_26 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_25);
|
||||
lean_ctor_set(x_26, 1, x_24);
|
||||
return x_26;
|
||||
lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_25 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_25);
|
||||
lean_dec(x_21);
|
||||
x_26 = lean_box(0);
|
||||
x_27 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_26);
|
||||
lean_ctor_set(x_27, 1, x_25);
|
||||
return x_27;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_27;
|
||||
x_27 = !lean_is_exclusive(x_20);
|
||||
if (x_27 == 0)
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_21);
|
||||
if (x_28 == 0)
|
||||
{
|
||||
return x_20;
|
||||
return x_21;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30;
|
||||
x_28 = lean_ctor_get(x_20, 0);
|
||||
x_29 = lean_ctor_get(x_20, 1);
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31;
|
||||
x_29 = lean_ctor_get(x_21, 0);
|
||||
x_30 = lean_ctor_get(x_21, 1);
|
||||
lean_inc(x_30);
|
||||
lean_inc(x_29);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_20);
|
||||
x_30 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_28);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
return x_30;
|
||||
lean_dec(x_21);
|
||||
x_31 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_29);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_31;
|
||||
uint8_t x_32;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
|
|
@ -335,29 +359,29 @@ lean_dec(x_5);
|
|||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
x_31 = !lean_is_exclusive(x_14);
|
||||
if (x_31 == 0)
|
||||
x_32 = !lean_is_exclusive(x_15);
|
||||
if (x_32 == 0)
|
||||
{
|
||||
return x_14;
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_32; lean_object* x_33; lean_object* x_34;
|
||||
x_32 = lean_ctor_get(x_14, 0);
|
||||
x_33 = lean_ctor_get(x_14, 1);
|
||||
lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
x_33 = lean_ctor_get(x_15, 0);
|
||||
x_34 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_34);
|
||||
lean_inc(x_33);
|
||||
lean_inc(x_32);
|
||||
lean_dec(x_14);
|
||||
x_34 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_34, 0, x_32);
|
||||
lean_ctor_set(x_34, 1, x_33);
|
||||
return x_34;
|
||||
lean_dec(x_15);
|
||||
x_35 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_33);
|
||||
lean_ctor_set(x_35, 1, x_34);
|
||||
return x_35;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_35;
|
||||
uint8_t x_36;
|
||||
lean_dec(x_9);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
|
|
@ -367,28 +391,28 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_35 = !lean_is_exclusive(x_11);
|
||||
if (x_35 == 0)
|
||||
x_36 = !lean_is_exclusive(x_11);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
return x_11;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_36 = lean_ctor_get(x_11, 0);
|
||||
x_37 = lean_ctor_get(x_11, 1);
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_11, 0);
|
||||
x_38 = lean_ctor_get(x_11, 1);
|
||||
lean_inc(x_38);
|
||||
lean_inc(x_37);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_11);
|
||||
x_38 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_38, 0, x_36);
|
||||
lean_ctor_set(x_38, 1, x_37);
|
||||
return x_38;
|
||||
x_39 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
return x_39;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2(size_t x_1, size_t x_2, lean_object* x_3, 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_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__3(size_t x_1, size_t x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_13;
|
||||
|
|
@ -407,7 +431,7 @@ lean_inc(x_14);
|
|||
x_15 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_13);
|
||||
x_16 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalGeneralize___lambda__1), 10, 1);
|
||||
x_16 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalGeneralize___lambda__2), 10, 1);
|
||||
lean_closure_set(x_16, 0, x_14);
|
||||
x_17 = l_Lean_Elab_Tactic_withMainContext___rarg(x_16, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_15);
|
||||
return x_17;
|
||||
|
|
@ -466,7 +490,7 @@ x_15 = lean_usize_of_nat(x_14);
|
|||
lean_dec(x_14);
|
||||
x_16 = lean_box_usize(x_15);
|
||||
x_17 = l_Lean_Elab_Tactic_evalGeneralize___boxed__const__1;
|
||||
x_18 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalGeneralize___lambda__2___boxed), 12, 3);
|
||||
x_18 = lean_alloc_closure((void*)(l_Lean_Elab_Tactic_evalGeneralize___lambda__3___boxed), 12, 3);
|
||||
lean_closure_set(x_18, 0, x_16);
|
||||
lean_closure_set(x_18, 1, x_17);
|
||||
lean_closure_set(x_18, 2, x_13);
|
||||
|
|
@ -488,7 +512,21 @@ lean_dec(x_4);
|
|||
return x_15;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_8;
|
||||
x_8 = l_Lean_Elab_Tactic_evalGeneralize___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
return x_8;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_evalGeneralize___lambda__3___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
size_t x_13; size_t x_14; lean_object* x_15;
|
||||
|
|
@ -496,7 +534,7 @@ x_13 = lean_unbox_usize(x_1);
|
|||
lean_dec(x_1);
|
||||
x_14 = lean_unbox_usize(x_2);
|
||||
lean_dec(x_2);
|
||||
x_15 = l_Lean_Elab_Tactic_evalGeneralize___lambda__2(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
x_15 = l_Lean_Elab_Tactic_evalGeneralize___lambda__3(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
return x_15;
|
||||
}
|
||||
}
|
||||
|
|
@ -782,6 +820,8 @@ lean_dec_ref(res);
|
|||
res = initialize_Lean_Elab_Tactic_ElabTerm(builtin, lean_io_mk_world());
|
||||
if (lean_io_result_is_error(res)) return res;
|
||||
lean_dec_ref(res);
|
||||
l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1 = _init_l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Tactic_evalGeneralize___lambda__2___closed__1);
|
||||
l_Lean_Elab_Tactic_evalGeneralize___boxed__const__1 = _init_l_Lean_Elab_Tactic_evalGeneralize___boxed__const__1();
|
||||
lean_mark_persistent(l_Lean_Elab_Tactic_evalGeneralize___boxed__const__1);
|
||||
l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__1 = _init_l___regBuiltin_Lean_Elab_Tactic_evalGeneralize___closed__1();
|
||||
|
|
|
|||
361
stage0/stdlib/Lean/Elab/Tactic/Induction.c
generated
361
stage0/stdlib/Lean/Elab/Tactic/Induction.c
generated
|
|
@ -236,6 +236,7 @@ lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
|||
lean_object* l_Lean_Meta_mkLambdaFVars(lean_object*, lean_object*, uint8_t, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Expr_fvarId_x21(lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_ElimApp_getAltNumFields___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getUserGeneralizingFVarIds___closed__3;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_ElimApp_addNewArg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Std_Format_joinSep___at___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_ElimApp_getNumExplicitFields___spec__3(lean_object*, lean_object*);
|
||||
|
|
@ -248,7 +249,7 @@ static lean_object* l_Lean_withoutModifyingState___at___private_Lean_Elab_Tactic
|
|||
static lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___lambda__1___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_ElimApp_State_targetPos___default;
|
||||
static lean_object* l_Lean_Elab_Tactic_evalAlt___lambda__2___closed__2;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalAlts_go___spec__5___closed__1;
|
||||
LEAN_EXPORT lean_object* l_Lean_throwUnknownConstant___at___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___spec__8(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalAlts_go___spec__5___boxed(lean_object**);
|
||||
|
|
@ -280,7 +281,7 @@ LEAN_EXPORT lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_
|
|||
lean_object* lean_format_pretty(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_admitGoal(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalAlts_go___spec__5___lambda__2___closed__1;
|
||||
lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Elab_Tactic_ElimApp_mkElimApp_loop___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_revert(lean_object*, lean_object*, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalAlts_go___spec__5___lambda__3___closed__4;
|
||||
|
|
@ -413,10 +414,12 @@ static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalA
|
|||
lean_object* l_Lean_Elab_Tactic_setGoals(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Tactic_tagUntaggedGoals(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_ElimApp_getNumExplicitFields___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_resolveGlobalConstNoOverload___at___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___spec__2___closed__1;
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(size_t, size_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_isExprMVarAssigned(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_List_mapTRAux___at_Lean_mkConstWithLevelParams___spec__1(lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1;
|
||||
static lean_object* l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_ElimApp_evalAlts_go___spec__5___lambda__4___closed__1;
|
||||
LEAN_EXPORT lean_object* l_repr___at___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_ElimApp_getNumExplicitFields___spec__2___boxed(lean_object*);
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getAltName___boxed(lean_object*);
|
||||
|
|
@ -14065,7 +14068,27 @@ goto _start;
|
|||
}
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(size_t x_1, size_t x_2, lean_object* x_3, 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_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
_start:
|
||||
{
|
||||
uint8_t x_8; lean_object* x_9; lean_object* x_10;
|
||||
x_8 = 1;
|
||||
x_9 = lean_box(x_8);
|
||||
x_10 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_10, 0, x_9);
|
||||
lean_ctor_set(x_10, 1, x_7);
|
||||
return x_10;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1() {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_1;
|
||||
x_1 = lean_alloc_closure((void*)(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed), 7, 0);
|
||||
return x_1;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2(size_t x_1, size_t x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_13;
|
||||
|
|
@ -14080,91 +14103,92 @@ lean_inc(x_4);
|
|||
x_13 = l_Lean_Elab_Tactic_getMainGoal(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
if (lean_obj_tag(x_13) == 0)
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17;
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
|
||||
x_14 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_14);
|
||||
x_15 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_15);
|
||||
lean_dec(x_13);
|
||||
x_16 = l_Array_mapMUnsafe_map___at___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___spec__1(x_1, x_2, x_3);
|
||||
x_17 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1;
|
||||
lean_inc(x_11);
|
||||
lean_inc(x_10);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
x_17 = l_Lean_Meta_generalize(x_14, x_16, x_8, x_9, x_10, x_11, x_15);
|
||||
if (lean_obj_tag(x_17) == 0)
|
||||
x_18 = l_Lean_Meta_generalize(x_14, x_16, x_17, x_8, x_9, x_10, x_11, x_15);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
{
|
||||
lean_object* x_18; lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; size_t x_23; lean_object* x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27;
|
||||
x_18 = lean_ctor_get(x_17, 0);
|
||||
lean_inc(x_18);
|
||||
x_19 = lean_ctor_get(x_17, 1);
|
||||
lean_object* x_19; lean_object* x_20; lean_object* x_21; lean_object* x_22; lean_object* x_23; size_t x_24; lean_object* x_25; lean_object* x_26; lean_object* x_27; lean_object* x_28;
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_17);
|
||||
x_20 = lean_ctor_get(x_18, 0);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
x_21 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_21);
|
||||
lean_dec(x_18);
|
||||
x_22 = lean_array_get_size(x_20);
|
||||
x_23 = lean_usize_of_nat(x_22);
|
||||
lean_dec(x_22);
|
||||
x_24 = l_Array_mapMUnsafe_map___at_Lean_LocalContext_getFVars___spec__1(x_23, x_2, x_20);
|
||||
x_25 = lean_box(0);
|
||||
x_26 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_26, 0, x_21);
|
||||
lean_ctor_set(x_26, 1, x_25);
|
||||
x_27 = l_Lean_Elab_Tactic_replaceMainGoal(x_26, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_19);
|
||||
if (lean_obj_tag(x_27) == 0)
|
||||
x_21 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_21);
|
||||
x_22 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_19);
|
||||
x_23 = lean_array_get_size(x_21);
|
||||
x_24 = lean_usize_of_nat(x_23);
|
||||
lean_dec(x_23);
|
||||
x_25 = l_Array_mapMUnsafe_map___at_Lean_LocalContext_getFVars___spec__1(x_24, x_2, x_21);
|
||||
x_26 = lean_box(0);
|
||||
x_27 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_27, 0, x_22);
|
||||
lean_ctor_set(x_27, 1, x_26);
|
||||
x_28 = l_Lean_Elab_Tactic_replaceMainGoal(x_27, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_20);
|
||||
if (lean_obj_tag(x_28) == 0)
|
||||
{
|
||||
uint8_t x_28;
|
||||
x_28 = !lean_is_exclusive(x_27);
|
||||
if (x_28 == 0)
|
||||
uint8_t x_29;
|
||||
x_29 = !lean_is_exclusive(x_28);
|
||||
if (x_29 == 0)
|
||||
{
|
||||
lean_object* x_29;
|
||||
x_29 = lean_ctor_get(x_27, 0);
|
||||
lean_dec(x_29);
|
||||
lean_ctor_set(x_27, 0, x_24);
|
||||
return x_27;
|
||||
lean_object* x_30;
|
||||
x_30 = lean_ctor_get(x_28, 0);
|
||||
lean_dec(x_30);
|
||||
lean_ctor_set(x_28, 0, x_25);
|
||||
return x_28;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_30; lean_object* x_31;
|
||||
x_30 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_27);
|
||||
x_31 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_24);
|
||||
lean_ctor_set(x_31, 1, x_30);
|
||||
return x_31;
|
||||
lean_object* x_31; lean_object* x_32;
|
||||
x_31 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_31);
|
||||
lean_dec(x_28);
|
||||
x_32 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_32, 0, x_25);
|
||||
lean_ctor_set(x_32, 1, x_31);
|
||||
return x_32;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_32;
|
||||
lean_dec(x_24);
|
||||
x_32 = !lean_is_exclusive(x_27);
|
||||
if (x_32 == 0)
|
||||
uint8_t x_33;
|
||||
lean_dec(x_25);
|
||||
x_33 = !lean_is_exclusive(x_28);
|
||||
if (x_33 == 0)
|
||||
{
|
||||
return x_27;
|
||||
return x_28;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
x_33 = lean_ctor_get(x_27, 0);
|
||||
x_34 = lean_ctor_get(x_27, 1);
|
||||
lean_object* x_34; lean_object* x_35; lean_object* x_36;
|
||||
x_34 = lean_ctor_get(x_28, 0);
|
||||
x_35 = lean_ctor_get(x_28, 1);
|
||||
lean_inc(x_35);
|
||||
lean_inc(x_34);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_27);
|
||||
x_35 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_33);
|
||||
lean_ctor_set(x_35, 1, x_34);
|
||||
return x_35;
|
||||
lean_dec(x_28);
|
||||
x_36 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_36, 0, x_34);
|
||||
lean_ctor_set(x_36, 1, x_35);
|
||||
return x_36;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_36;
|
||||
uint8_t x_37;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
|
|
@ -14173,29 +14197,29 @@ lean_dec(x_7);
|
|||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
x_36 = !lean_is_exclusive(x_17);
|
||||
if (x_36 == 0)
|
||||
x_37 = !lean_is_exclusive(x_18);
|
||||
if (x_37 == 0)
|
||||
{
|
||||
return x_17;
|
||||
return x_18;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_17, 0);
|
||||
x_38 = lean_ctor_get(x_17, 1);
|
||||
lean_object* x_38; lean_object* x_39; lean_object* x_40;
|
||||
x_38 = lean_ctor_get(x_18, 0);
|
||||
x_39 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_39);
|
||||
lean_inc(x_38);
|
||||
lean_inc(x_37);
|
||||
lean_dec(x_17);
|
||||
x_39 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
return x_39;
|
||||
lean_dec(x_18);
|
||||
x_40 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_40, 0, x_38);
|
||||
lean_ctor_set(x_40, 1, x_39);
|
||||
return x_40;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_40;
|
||||
uint8_t x_41;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
|
|
@ -14205,23 +14229,23 @@ lean_dec(x_6);
|
|||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_40 = !lean_is_exclusive(x_13);
|
||||
if (x_40 == 0)
|
||||
x_41 = !lean_is_exclusive(x_13);
|
||||
if (x_41 == 0)
|
||||
{
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_41; lean_object* x_42; lean_object* x_43;
|
||||
x_41 = lean_ctor_get(x_13, 0);
|
||||
x_42 = lean_ctor_get(x_13, 1);
|
||||
lean_object* x_42; lean_object* x_43; lean_object* x_44;
|
||||
x_42 = lean_ctor_get(x_13, 0);
|
||||
x_43 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_43);
|
||||
lean_inc(x_42);
|
||||
lean_inc(x_41);
|
||||
lean_dec(x_13);
|
||||
x_43 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_41);
|
||||
lean_ctor_set(x_43, 1, x_42);
|
||||
return x_43;
|
||||
x_44 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_44, 0, x_42);
|
||||
lean_ctor_set(x_44, 1, x_43);
|
||||
return x_44;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -14308,7 +14332,7 @@ else
|
|||
lean_object* x_21; lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_21 = lean_box_usize(x_18);
|
||||
x_22 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___boxed__const__1;
|
||||
x_23 = lean_alloc_closure((void*)(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed), 12, 3);
|
||||
x_23 = lean_alloc_closure((void*)(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___boxed), 12, 3);
|
||||
lean_closure_set(x_23, 0, x_21);
|
||||
lean_closure_set(x_23, 1, x_22);
|
||||
lean_closure_set(x_23, 2, x_1);
|
||||
|
|
@ -14331,7 +14355,21 @@ x_6 = l_Array_mapMUnsafe_map___at___private_Lean_Elab_Tactic_Induction_0__Lean_E
|
|||
return x_6;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_8;
|
||||
x_8 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(x_1, x_2, x_3, x_4, x_5, x_6, x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
return x_8;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
size_t x_13; size_t x_14; lean_object* x_15;
|
||||
|
|
@ -14339,7 +14377,7 @@ x_13 = lean_unbox_usize(x_1);
|
|||
lean_dec(x_1);
|
||||
x_14 = lean_unbox_usize(x_2);
|
||||
lean_dec(x_2);
|
||||
x_15 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__1(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
x_15 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2(x_13, x_14, x_3, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
return x_15;
|
||||
}
|
||||
}
|
||||
|
|
@ -16301,7 +16339,7 @@ lean_inc(x_4);
|
|||
x_13 = l_Lean_Elab_Tactic_getMainGoal(x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_12);
|
||||
if (lean_obj_tag(x_13) == 0)
|
||||
{
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18;
|
||||
lean_object* x_14; lean_object* x_15; lean_object* x_16; lean_object* x_17; lean_object* x_18; lean_object* x_19;
|
||||
x_14 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_14);
|
||||
x_15 = lean_ctor_get(x_13, 1);
|
||||
|
|
@ -16309,91 +16347,92 @@ lean_inc(x_15);
|
|||
lean_dec(x_13);
|
||||
x_16 = l_Lean_Elab_Tactic_ElimApp_State_alts___default___closed__1;
|
||||
x_17 = l_Array_foldlMUnsafe_fold___at_Lean_Elab_Tactic_elabCasesTargets___spec__3(x_1, x_2, x_3, x_16);
|
||||
x_18 = l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1;
|
||||
lean_inc(x_11);
|
||||
lean_inc(x_10);
|
||||
lean_inc(x_9);
|
||||
lean_inc(x_8);
|
||||
x_18 = l_Lean_Meta_generalize(x_14, x_17, x_8, x_9, x_10, x_11, x_15);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
x_19 = l_Lean_Meta_generalize(x_14, x_17, x_18, x_8, x_9, x_10, x_11, x_15);
|
||||
if (lean_obj_tag(x_19) == 0)
|
||||
{
|
||||
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_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
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; lean_object* x_31;
|
||||
x_20 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
x_21 = lean_ctor_get(x_19, 0);
|
||||
x_21 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_21);
|
||||
x_22 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_22);
|
||||
lean_dec(x_19);
|
||||
x_23 = l_Lean_Elab_Tactic_elabCasesTargets___lambda__1___closed__1;
|
||||
x_24 = l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_elabCasesTargets___spec__4(x_21, x_1, x_3, x_2, x_23, x_8, x_9, x_10, x_11, x_20);
|
||||
lean_dec(x_21);
|
||||
x_25 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_ctor_get(x_24, 1);
|
||||
x_22 = lean_ctor_get(x_20, 0);
|
||||
lean_inc(x_22);
|
||||
x_23 = lean_ctor_get(x_20, 1);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_20);
|
||||
x_24 = l_Lean_Elab_Tactic_elabCasesTargets___lambda__1___closed__1;
|
||||
x_25 = l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_elabCasesTargets___spec__4(x_22, x_1, x_3, x_2, x_24, x_8, x_9, x_10, x_11, x_21);
|
||||
lean_dec(x_22);
|
||||
x_26 = lean_ctor_get(x_25, 0);
|
||||
lean_inc(x_26);
|
||||
lean_dec(x_24);
|
||||
x_27 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_25);
|
||||
x_28 = lean_box(0);
|
||||
x_29 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_29, 0, x_22);
|
||||
lean_ctor_set(x_29, 1, x_28);
|
||||
x_30 = l_Lean_Elab_Tactic_replaceMainGoal(x_29, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_26);
|
||||
if (lean_obj_tag(x_30) == 0)
|
||||
x_28 = lean_ctor_get(x_26, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_26);
|
||||
x_29 = lean_box(0);
|
||||
x_30 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_23);
|
||||
lean_ctor_set(x_30, 1, x_29);
|
||||
x_31 = l_Lean_Elab_Tactic_replaceMainGoal(x_30, x_4, x_5, x_6, x_7, x_8, x_9, x_10, x_11, x_27);
|
||||
if (lean_obj_tag(x_31) == 0)
|
||||
{
|
||||
uint8_t x_31;
|
||||
x_31 = !lean_is_exclusive(x_30);
|
||||
if (x_31 == 0)
|
||||
uint8_t x_32;
|
||||
x_32 = !lean_is_exclusive(x_31);
|
||||
if (x_32 == 0)
|
||||
{
|
||||
lean_object* x_32;
|
||||
x_32 = lean_ctor_get(x_30, 0);
|
||||
lean_dec(x_32);
|
||||
lean_ctor_set(x_30, 0, x_27);
|
||||
return x_30;
|
||||
lean_object* x_33;
|
||||
x_33 = lean_ctor_get(x_31, 0);
|
||||
lean_dec(x_33);
|
||||
lean_ctor_set(x_31, 0, x_28);
|
||||
return x_31;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_33; lean_object* x_34;
|
||||
x_33 = lean_ctor_get(x_30, 1);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_30);
|
||||
x_34 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_34, 0, x_27);
|
||||
lean_ctor_set(x_34, 1, x_33);
|
||||
return x_34;
|
||||
lean_object* x_34; lean_object* x_35;
|
||||
x_34 = lean_ctor_get(x_31, 1);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_31);
|
||||
x_35 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_35, 0, x_28);
|
||||
lean_ctor_set(x_35, 1, x_34);
|
||||
return x_35;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_35;
|
||||
lean_dec(x_27);
|
||||
x_35 = !lean_is_exclusive(x_30);
|
||||
if (x_35 == 0)
|
||||
uint8_t x_36;
|
||||
lean_dec(x_28);
|
||||
x_36 = !lean_is_exclusive(x_31);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
return x_30;
|
||||
return x_31;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_36 = lean_ctor_get(x_30, 0);
|
||||
x_37 = lean_ctor_get(x_30, 1);
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_31, 0);
|
||||
x_38 = lean_ctor_get(x_31, 1);
|
||||
lean_inc(x_38);
|
||||
lean_inc(x_37);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_30);
|
||||
x_38 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_38, 0, x_36);
|
||||
lean_ctor_set(x_38, 1, x_37);
|
||||
return x_38;
|
||||
lean_dec(x_31);
|
||||
x_39 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
return x_39;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_39;
|
||||
uint8_t x_40;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
|
|
@ -16402,29 +16441,29 @@ lean_dec(x_7);
|
|||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
x_39 = !lean_is_exclusive(x_18);
|
||||
if (x_39 == 0)
|
||||
x_40 = !lean_is_exclusive(x_19);
|
||||
if (x_40 == 0)
|
||||
{
|
||||
return x_18;
|
||||
return x_19;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_40; lean_object* x_41; lean_object* x_42;
|
||||
x_40 = lean_ctor_get(x_18, 0);
|
||||
x_41 = lean_ctor_get(x_18, 1);
|
||||
lean_object* x_41; lean_object* x_42; lean_object* x_43;
|
||||
x_41 = lean_ctor_get(x_19, 0);
|
||||
x_42 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_42);
|
||||
lean_inc(x_41);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_18);
|
||||
x_42 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_40);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
return x_42;
|
||||
lean_dec(x_19);
|
||||
x_43 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_41);
|
||||
lean_ctor_set(x_43, 1, x_42);
|
||||
return x_43;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_43;
|
||||
uint8_t x_44;
|
||||
lean_dec(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_dec(x_9);
|
||||
|
|
@ -16433,23 +16472,23 @@ lean_dec(x_7);
|
|||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
x_43 = !lean_is_exclusive(x_13);
|
||||
if (x_43 == 0)
|
||||
x_44 = !lean_is_exclusive(x_13);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
return x_13;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_44; lean_object* x_45; lean_object* x_46;
|
||||
x_44 = lean_ctor_get(x_13, 0);
|
||||
x_45 = lean_ctor_get(x_13, 1);
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_13, 0);
|
||||
x_46 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_46);
|
||||
lean_inc(x_45);
|
||||
lean_inc(x_44);
|
||||
lean_dec(x_13);
|
||||
x_46 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_46, 0, x_44);
|
||||
lean_ctor_set(x_46, 1, x_45);
|
||||
return x_46;
|
||||
x_47 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_47, 0, x_45);
|
||||
lean_ctor_set(x_47, 1, x_46);
|
||||
return x_47;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -18078,6 +18117,8 @@ l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___clo
|
|||
lean_mark_persistent(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___closed__1);
|
||||
l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___closed__2 = _init_l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___closed__2();
|
||||
lean_mark_persistent(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_getElimNameInfo___closed__2);
|
||||
l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1 = _init_l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1();
|
||||
lean_mark_persistent(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___lambda__2___closed__1);
|
||||
l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___boxed__const__1 = _init_l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___boxed__const__1();
|
||||
lean_mark_persistent(l___private_Lean_Elab_Tactic_Induction_0__Lean_Elab_Tactic_generalizeTargets___boxed__const__1);
|
||||
l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_evalInduction_checkTargets___spec__1___lambda__1___closed__1 = _init_l_Array_forInUnsafe_loop___at_Lean_Elab_Tactic_evalInduction_checkTargets___spec__1___lambda__1___closed__1();
|
||||
|
|
|
|||
3883
stage0/stdlib/Lean/Meta/KAbstract.c
generated
3883
stage0/stdlib/Lean/Meta/KAbstract.c
generated
File diff suppressed because it is too large
Load diff
565
stage0/stdlib/Lean/Meta/Tactic/Generalize.c
generated
565
stage0/stdlib/Lean/Meta/Tactic/Generalize.c
generated
|
|
@ -24,7 +24,7 @@ lean_object* lean_name_mk_string(lean_object*, lean_object*);
|
|||
uint8_t lean_usize_dec_eq(size_t, size_t);
|
||||
lean_object* lean_array_uget(lean_object*, size_t);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint64_t lean_uint64_of_nat(lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_GeneralizeArg_hName_x3f___default;
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go_x27___lambda__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -49,7 +49,8 @@ static lean_object* l_Lean_Meta_generalize___lambda__3___closed__1;
|
|||
lean_object* lean_array_get(lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__2___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go_x27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_kabstractWithPred(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Meta_generalize___spec__1(size_t, size_t, lean_object*);
|
||||
extern lean_object* l_Lean_instInhabitedExpr;
|
||||
lean_object* l_Lean_Meta_introNCore(lean_object*, lean_object*, lean_object*, uint8_t, uint8_t, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -71,7 +72,7 @@ lean_object* l_Lean_mkForall(lean_object*, uint8_t, lean_object*, lean_object*);
|
|||
lean_object* l_List_toArrayAux___rarg(lean_object*, lean_object*);
|
||||
lean_object* lean_infer_type(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_isExprDefEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_instantiateMVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_GeneralizeArg_xName_x3f___default;
|
||||
lean_object* l_List_lengthTRAux___rarg(lean_object*, lean_object*);
|
||||
|
|
@ -81,8 +82,7 @@ LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__1(lean_object*, lean_o
|
|||
lean_object* l_Lean_Meta_mkHEqRefl(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_mkEq(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_indentExpr(lean_object*);
|
||||
lean_object* l_Lean_Meta_kabstract(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__3(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t lean_nat_dec_lt(lean_object*, lean_object*);
|
||||
static lean_object* _init_l_Lean_Meta_GeneralizeArg_xName_x3f___default() {
|
||||
_start:
|
||||
|
|
@ -142,12 +142,11 @@ x_1 = l_Lean_Meta_instInhabitedGeneralizeArg___closed__3;
|
|||
return x_1;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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_EXPORT lean_object* l_Lean_Meta_generalize_go___lambda__1(lean_object* x_1, lean_object* x_2, lean_object* x_3, 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) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11;
|
||||
x_10 = lean_box(0);
|
||||
x_11 = l_Lean_Meta_kabstract(x_1, x_2, x_10, x_5, x_6, x_7, x_8, x_9);
|
||||
lean_object* x_11;
|
||||
x_11 = l_Lean_Meta_kabstractWithPred(x_1, x_2, x_3, x_6, x_7, x_8, x_9, x_10);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
{
|
||||
uint8_t x_12;
|
||||
|
|
@ -157,7 +156,7 @@ if (x_12 == 0)
|
|||
lean_object* x_13; uint8_t x_14; lean_object* x_15;
|
||||
x_13 = lean_ctor_get(x_11, 0);
|
||||
x_14 = 0;
|
||||
x_15 = l_Lean_mkForall(x_4, x_14, x_3, x_13);
|
||||
x_15 = l_Lean_mkForall(x_5, x_14, x_4, x_13);
|
||||
lean_ctor_set(x_11, 0, x_15);
|
||||
return x_11;
|
||||
}
|
||||
|
|
@ -170,7 +169,7 @@ lean_inc(x_17);
|
|||
lean_inc(x_16);
|
||||
lean_dec(x_11);
|
||||
x_18 = 0;
|
||||
x_19 = l_Lean_mkForall(x_4, x_18, x_3, x_16);
|
||||
x_19 = l_Lean_mkForall(x_5, x_18, x_4, x_16);
|
||||
x_20 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_20, 0, x_19);
|
||||
lean_ctor_set(x_20, 1, x_17);
|
||||
|
|
@ -180,8 +179,8 @@ return x_20;
|
|||
else
|
||||
{
|
||||
uint8_t x_21;
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
x_21 = !lean_is_exclusive(x_11);
|
||||
if (x_21 == 0)
|
||||
{
|
||||
|
|
@ -221,144 +220,148 @@ x_3 = lean_name_mk_string(x_1, x_2);
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize_go(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9; uint8_t x_10;
|
||||
x_9 = lean_array_get_size(x_1);
|
||||
x_10 = lean_nat_dec_lt(x_3, x_9);
|
||||
lean_dec(x_9);
|
||||
if (x_10 == 0)
|
||||
lean_object* x_10; uint8_t x_11;
|
||||
x_10 = lean_array_get_size(x_1);
|
||||
x_11 = lean_nat_dec_lt(x_4, x_10);
|
||||
lean_dec(x_10);
|
||||
if (x_11 == 0)
|
||||
{
|
||||
lean_object* x_11;
|
||||
lean_object* x_12;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_11 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_11, 0, x_2);
|
||||
lean_ctor_set(x_11, 1, x_8);
|
||||
return x_11;
|
||||
x_12 = lean_alloc_ctor(0, 2, 0);
|
||||
lean_ctor_set(x_12, 0, x_3);
|
||||
lean_ctor_set(x_12, 1, x_9);
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
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;
|
||||
x_12 = l_Lean_Meta_instInhabitedGeneralizeArg;
|
||||
x_13 = lean_array_get(x_12, x_1, x_3);
|
||||
x_14 = lean_ctor_get(x_13, 0);
|
||||
lean_inc(x_14);
|
||||
lean_inc(x_5);
|
||||
x_15 = l_Lean_Meta_instantiateMVars(x_14, x_4, x_5, x_6, x_7, x_8);
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
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;
|
||||
x_13 = l_Lean_Meta_instInhabitedGeneralizeArg;
|
||||
x_14 = lean_array_get(x_13, x_1, x_4);
|
||||
x_15 = lean_ctor_get(x_14, 0);
|
||||
lean_inc(x_15);
|
||||
lean_inc(x_6);
|
||||
x_16 = l_Lean_Meta_instantiateMVars(x_15, x_5, x_6, x_7, x_8, x_9);
|
||||
x_17 = lean_ctor_get(x_16, 0);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
x_18 = lean_ctor_get(x_16, 1);
|
||||
lean_inc(x_18);
|
||||
lean_dec(x_16);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_16);
|
||||
x_18 = lean_infer_type(x_16, x_4, x_5, x_6, x_7, x_17);
|
||||
if (lean_obj_tag(x_18) == 0)
|
||||
lean_inc(x_17);
|
||||
x_19 = lean_infer_type(x_17, x_5, x_6, x_7, x_8, x_18);
|
||||
if (lean_obj_tag(x_19) == 0)
|
||||
{
|
||||
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;
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
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;
|
||||
x_20 = lean_ctor_get(x_19, 0);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
lean_inc(x_5);
|
||||
x_21 = l_Lean_Meta_instantiateMVars(x_19, x_4, x_5, x_6, x_7, x_20);
|
||||
x_22 = lean_ctor_get(x_21, 0);
|
||||
lean_inc(x_22);
|
||||
x_23 = lean_ctor_get(x_21, 1);
|
||||
x_21 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_21);
|
||||
lean_dec(x_19);
|
||||
lean_inc(x_6);
|
||||
x_22 = l_Lean_Meta_instantiateMVars(x_20, x_5, x_6, x_7, x_8, x_21);
|
||||
x_23 = lean_ctor_get(x_22, 0);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_21);
|
||||
x_24 = lean_unsigned_to_nat(1u);
|
||||
x_25 = lean_nat_add(x_3, x_24);
|
||||
lean_dec(x_3);
|
||||
x_24 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_22);
|
||||
x_25 = lean_unsigned_to_nat(1u);
|
||||
x_26 = lean_nat_add(x_4, x_25);
|
||||
lean_dec(x_4);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
x_26 = l_Lean_Meta_generalize_go(x_1, x_2, x_25, x_4, x_5, x_6, x_7, x_23);
|
||||
if (lean_obj_tag(x_26) == 0)
|
||||
{
|
||||
lean_object* x_27;
|
||||
x_27 = lean_ctor_get(x_13, 1);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_13);
|
||||
lean_inc(x_2);
|
||||
x_27 = l_Lean_Meta_generalize_go(x_1, x_2, x_3, x_26, x_5, x_6, x_7, x_8, x_24);
|
||||
if (lean_obj_tag(x_27) == 0)
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34;
|
||||
x_28 = lean_ctor_get(x_26, 0);
|
||||
lean_object* x_28;
|
||||
x_28 = lean_ctor_get(x_14, 1);
|
||||
lean_inc(x_28);
|
||||
x_29 = lean_ctor_get(x_26, 1);
|
||||
lean_dec(x_14);
|
||||
if (lean_obj_tag(x_28) == 0)
|
||||
{
|
||||
lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35;
|
||||
x_29 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_29);
|
||||
lean_dec(x_26);
|
||||
x_30 = l_Lean_Meta_generalize_go___closed__2;
|
||||
x_31 = l___private_Lean_CoreM_0__Lean_Core_mkFreshNameImp(x_30, x_6, x_7, x_29);
|
||||
x_32 = lean_ctor_get(x_31, 0);
|
||||
lean_inc(x_32);
|
||||
x_33 = lean_ctor_get(x_31, 1);
|
||||
x_30 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_30);
|
||||
lean_dec(x_27);
|
||||
x_31 = l_Lean_Meta_generalize_go___closed__2;
|
||||
x_32 = l___private_Lean_CoreM_0__Lean_Core_mkFreshNameImp(x_31, x_7, x_8, x_30);
|
||||
x_33 = lean_ctor_get(x_32, 0);
|
||||
lean_inc(x_33);
|
||||
lean_dec(x_31);
|
||||
x_34 = l_Lean_Meta_generalize_go___lambda__1(x_28, x_16, x_22, x_32, x_4, x_5, x_6, x_7, x_33);
|
||||
return x_34;
|
||||
x_34 = lean_ctor_get(x_32, 1);
|
||||
lean_inc(x_34);
|
||||
lean_dec(x_32);
|
||||
x_35 = l_Lean_Meta_generalize_go___lambda__1(x_29, x_17, x_2, x_23, x_33, x_5, x_6, x_7, x_8, x_34);
|
||||
return x_35;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_35; lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_35 = lean_ctor_get(x_26, 0);
|
||||
lean_inc(x_35);
|
||||
x_36 = lean_ctor_get(x_26, 1);
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_36 = lean_ctor_get(x_27, 0);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_26);
|
||||
x_37 = lean_ctor_get(x_27, 0);
|
||||
x_37 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_37);
|
||||
lean_dec(x_27);
|
||||
x_38 = l_Lean_Meta_generalize_go___lambda__1(x_35, x_16, x_22, x_37, x_4, x_5, x_6, x_7, x_36);
|
||||
return x_38;
|
||||
x_38 = lean_ctor_get(x_28, 0);
|
||||
lean_inc(x_38);
|
||||
lean_dec(x_28);
|
||||
x_39 = l_Lean_Meta_generalize_go___lambda__1(x_36, x_17, x_2, x_23, x_38, x_5, x_6, x_7, x_8, x_37);
|
||||
return x_39;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_39;
|
||||
lean_dec(x_22);
|
||||
lean_dec(x_16);
|
||||
lean_dec(x_13);
|
||||
uint8_t x_40;
|
||||
lean_dec(x_23);
|
||||
lean_dec(x_17);
|
||||
lean_dec(x_14);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
x_39 = !lean_is_exclusive(x_26);
|
||||
if (x_39 == 0)
|
||||
lean_dec(x_2);
|
||||
x_40 = !lean_is_exclusive(x_27);
|
||||
if (x_40 == 0)
|
||||
{
|
||||
return x_26;
|
||||
return x_27;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_40; lean_object* x_41; lean_object* x_42;
|
||||
x_40 = lean_ctor_get(x_26, 0);
|
||||
x_41 = lean_ctor_get(x_26, 1);
|
||||
lean_object* x_41; lean_object* x_42; lean_object* x_43;
|
||||
x_41 = lean_ctor_get(x_27, 0);
|
||||
x_42 = lean_ctor_get(x_27, 1);
|
||||
lean_inc(x_42);
|
||||
lean_inc(x_41);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_26);
|
||||
x_42 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_42, 0, x_40);
|
||||
lean_ctor_set(x_42, 1, x_41);
|
||||
return x_42;
|
||||
lean_dec(x_27);
|
||||
x_43 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_43, 0, x_41);
|
||||
lean_ctor_set(x_43, 1, x_42);
|
||||
return x_43;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_43;
|
||||
lean_dec(x_16);
|
||||
lean_dec(x_13);
|
||||
uint8_t x_44;
|
||||
lean_dec(x_17);
|
||||
lean_dec(x_14);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
|
|
@ -366,23 +369,23 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_43 = !lean_is_exclusive(x_18);
|
||||
if (x_43 == 0)
|
||||
x_44 = !lean_is_exclusive(x_19);
|
||||
if (x_44 == 0)
|
||||
{
|
||||
return x_18;
|
||||
return x_19;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_44; lean_object* x_45; lean_object* x_46;
|
||||
x_44 = lean_ctor_get(x_18, 0);
|
||||
x_45 = lean_ctor_get(x_18, 1);
|
||||
lean_object* x_45; lean_object* x_46; lean_object* x_47;
|
||||
x_45 = lean_ctor_get(x_19, 0);
|
||||
x_46 = lean_ctor_get(x_19, 1);
|
||||
lean_inc(x_46);
|
||||
lean_inc(x_45);
|
||||
lean_inc(x_44);
|
||||
lean_dec(x_18);
|
||||
x_46 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_46, 0, x_44);
|
||||
lean_ctor_set(x_46, 1, x_45);
|
||||
return x_46;
|
||||
lean_dec(x_19);
|
||||
x_47 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_47, 0, x_45);
|
||||
lean_ctor_set(x_47, 1, x_46);
|
||||
return x_47;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1412,195 +1415,196 @@ x_2 = l_Lean_stringToMessageData(x_1);
|
|||
return x_2;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize___lambda__3(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8, lean_object* x_9) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_9;
|
||||
lean_inc(x_5);
|
||||
lean_object* x_10;
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_2);
|
||||
lean_inc(x_1);
|
||||
x_9 = l_Lean_Meta_checkNotAssigned(x_1, x_2, x_4, x_5, x_6, x_7, x_8);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
x_10 = l_Lean_Meta_checkNotAssigned(x_1, x_2, x_5, x_6, x_7, x_8, x_9);
|
||||
if (lean_obj_tag(x_10) == 0)
|
||||
{
|
||||
lean_object* x_10; lean_object* x_11;
|
||||
x_10 = lean_ctor_get(x_9, 1);
|
||||
lean_inc(x_10);
|
||||
lean_dec(x_9);
|
||||
lean_object* x_11; lean_object* x_12;
|
||||
x_11 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_11);
|
||||
lean_dec(x_10);
|
||||
lean_inc(x_1);
|
||||
x_11 = l_Lean_Meta_getMVarTag(x_1, x_4, x_5, x_6, x_7, x_10);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
x_12 = l_Lean_Meta_getMVarTag(x_1, x_5, x_6, x_7, x_8, x_11);
|
||||
if (lean_obj_tag(x_12) == 0)
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; lean_object* x_14;
|
||||
x_12 = lean_ctor_get(x_11, 0);
|
||||
lean_inc(x_12);
|
||||
x_13 = lean_ctor_get(x_11, 1);
|
||||
lean_object* x_13; lean_object* x_14; lean_object* x_15;
|
||||
x_13 = lean_ctor_get(x_12, 0);
|
||||
lean_inc(x_13);
|
||||
lean_dec(x_11);
|
||||
x_14 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_14);
|
||||
lean_dec(x_12);
|
||||
lean_inc(x_1);
|
||||
x_14 = l_Lean_Meta_getMVarType(x_1, x_4, x_5, x_6, x_7, x_13);
|
||||
if (lean_obj_tag(x_14) == 0)
|
||||
x_15 = l_Lean_Meta_getMVarType(x_1, x_5, x_6, x_7, x_8, x_14);
|
||||
if (lean_obj_tag(x_15) == 0)
|
||||
{
|
||||
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;
|
||||
x_15 = lean_ctor_get(x_14, 0);
|
||||
lean_inc(x_15);
|
||||
x_16 = lean_ctor_get(x_14, 1);
|
||||
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;
|
||||
x_16 = lean_ctor_get(x_15, 0);
|
||||
lean_inc(x_16);
|
||||
lean_dec(x_14);
|
||||
lean_inc(x_5);
|
||||
x_17 = l_Lean_Meta_instantiateMVars(x_15, x_4, x_5, x_6, x_7, x_16);
|
||||
x_18 = lean_ctor_get(x_17, 0);
|
||||
lean_inc(x_18);
|
||||
x_19 = lean_ctor_get(x_17, 1);
|
||||
x_17 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_17);
|
||||
lean_dec(x_15);
|
||||
lean_inc(x_6);
|
||||
x_18 = l_Lean_Meta_instantiateMVars(x_16, x_5, x_6, x_7, x_8, x_17);
|
||||
x_19 = lean_ctor_get(x_18, 0);
|
||||
lean_inc(x_19);
|
||||
lean_dec(x_17);
|
||||
x_20 = lean_unsigned_to_nat(0u);
|
||||
x_20 = lean_ctor_get(x_18, 1);
|
||||
lean_inc(x_20);
|
||||
lean_dec(x_18);
|
||||
x_21 = lean_unsigned_to_nat(0u);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
x_21 = l_Lean_Meta_generalize_go(x_3, x_18, x_20, x_4, x_5, x_6, x_7, x_19);
|
||||
if (lean_obj_tag(x_21) == 0)
|
||||
x_22 = l_Lean_Meta_generalize_go(x_3, x_4, x_19, x_21, x_5, x_6, x_7, x_8, x_20);
|
||||
if (lean_obj_tag(x_22) == 0)
|
||||
{
|
||||
lean_object* x_22; lean_object* x_23; lean_object* x_24;
|
||||
x_22 = lean_ctor_get(x_21, 0);
|
||||
lean_inc(x_22);
|
||||
x_23 = lean_ctor_get(x_21, 1);
|
||||
lean_object* x_23; lean_object* x_24; lean_object* x_25;
|
||||
x_23 = lean_ctor_get(x_22, 0);
|
||||
lean_inc(x_23);
|
||||
lean_dec(x_21);
|
||||
x_24 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_24);
|
||||
lean_dec(x_22);
|
||||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_22);
|
||||
x_24 = l_Lean_Meta_isTypeCorrect(x_22, x_4, x_5, x_6, x_7, x_23);
|
||||
if (lean_obj_tag(x_24) == 0)
|
||||
lean_inc(x_23);
|
||||
x_25 = l_Lean_Meta_isTypeCorrect(x_23, x_5, x_6, x_7, x_8, x_24);
|
||||
if (lean_obj_tag(x_25) == 0)
|
||||
{
|
||||
lean_object* x_25; uint8_t x_26;
|
||||
x_25 = lean_ctor_get(x_24, 0);
|
||||
lean_inc(x_25);
|
||||
x_26 = lean_unbox(x_25);
|
||||
lean_object* x_26; uint8_t x_27;
|
||||
x_26 = lean_ctor_get(x_25, 0);
|
||||
lean_inc(x_26);
|
||||
x_27 = lean_unbox(x_26);
|
||||
lean_dec(x_26);
|
||||
if (x_27 == 0)
|
||||
{
|
||||
lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; lean_object* x_35; uint8_t x_36;
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_3);
|
||||
x_28 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_28);
|
||||
lean_dec(x_25);
|
||||
if (x_26 == 0)
|
||||
{
|
||||
lean_object* x_27; lean_object* x_28; lean_object* x_29; lean_object* x_30; lean_object* x_31; lean_object* x_32; lean_object* x_33; lean_object* x_34; uint8_t x_35;
|
||||
lean_dec(x_12);
|
||||
lean_dec(x_3);
|
||||
x_27 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_27);
|
||||
lean_dec(x_24);
|
||||
x_28 = l_Lean_indentExpr(x_22);
|
||||
x_29 = l_Lean_Meta_generalize___lambda__3___closed__2;
|
||||
x_30 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_30, 0, x_29);
|
||||
lean_ctor_set(x_30, 1, x_28);
|
||||
x_31 = l_Lean_Meta_generalize___lambda__3___closed__4;
|
||||
x_32 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_32, 0, x_30);
|
||||
lean_ctor_set(x_32, 1, x_31);
|
||||
x_33 = lean_box(0);
|
||||
x_34 = l_Lean_Meta_throwTacticEx___rarg(x_2, x_1, x_32, x_33, x_4, x_5, x_6, x_7, x_27);
|
||||
x_29 = l_Lean_indentExpr(x_23);
|
||||
x_30 = l_Lean_Meta_generalize___lambda__3___closed__2;
|
||||
x_31 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_31, 0, x_30);
|
||||
lean_ctor_set(x_31, 1, x_29);
|
||||
x_32 = l_Lean_Meta_generalize___lambda__3___closed__4;
|
||||
x_33 = lean_alloc_ctor(10, 2, 0);
|
||||
lean_ctor_set(x_33, 0, x_31);
|
||||
lean_ctor_set(x_33, 1, x_32);
|
||||
x_34 = lean_box(0);
|
||||
x_35 = l_Lean_Meta_throwTacticEx___rarg(x_2, x_1, x_33, x_34, x_5, x_6, x_7, x_8, x_28);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_4);
|
||||
x_35 = !lean_is_exclusive(x_34);
|
||||
if (x_35 == 0)
|
||||
lean_dec(x_5);
|
||||
x_36 = !lean_is_exclusive(x_35);
|
||||
if (x_36 == 0)
|
||||
{
|
||||
return x_34;
|
||||
return x_35;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_36; lean_object* x_37; lean_object* x_38;
|
||||
x_36 = lean_ctor_get(x_34, 0);
|
||||
x_37 = lean_ctor_get(x_34, 1);
|
||||
lean_object* x_37; lean_object* x_38; lean_object* x_39;
|
||||
x_37 = lean_ctor_get(x_35, 0);
|
||||
x_38 = lean_ctor_get(x_35, 1);
|
||||
lean_inc(x_38);
|
||||
lean_inc(x_37);
|
||||
lean_inc(x_36);
|
||||
lean_dec(x_34);
|
||||
x_38 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_38, 0, x_36);
|
||||
lean_ctor_set(x_38, 1, x_37);
|
||||
return x_38;
|
||||
lean_dec(x_35);
|
||||
x_39 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_39, 0, x_37);
|
||||
lean_ctor_set(x_39, 1, x_38);
|
||||
return x_39;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_39; lean_object* x_40; lean_object* x_41;
|
||||
lean_object* x_40; lean_object* x_41; lean_object* x_42;
|
||||
lean_dec(x_2);
|
||||
x_39 = lean_ctor_get(x_24, 1);
|
||||
lean_inc(x_39);
|
||||
lean_dec(x_24);
|
||||
x_40 = lean_box(0);
|
||||
x_41 = l_Lean_Meta_generalize___lambda__2(x_3, x_22, x_12, x_1, x_40, x_4, x_5, x_6, x_7, x_39);
|
||||
return x_41;
|
||||
x_40 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_40);
|
||||
lean_dec(x_25);
|
||||
x_41 = lean_box(0);
|
||||
x_42 = l_Lean_Meta_generalize___lambda__2(x_3, x_23, x_13, x_1, x_41, x_5, x_6, x_7, x_8, x_40);
|
||||
return x_42;
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_42;
|
||||
lean_dec(x_22);
|
||||
lean_dec(x_12);
|
||||
uint8_t x_43;
|
||||
lean_dec(x_23);
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_42 = !lean_is_exclusive(x_24);
|
||||
if (x_42 == 0)
|
||||
x_43 = !lean_is_exclusive(x_25);
|
||||
if (x_43 == 0)
|
||||
{
|
||||
return x_24;
|
||||
return x_25;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_43; lean_object* x_44; lean_object* x_45;
|
||||
x_43 = lean_ctor_get(x_24, 0);
|
||||
x_44 = lean_ctor_get(x_24, 1);
|
||||
lean_object* x_44; lean_object* x_45; lean_object* x_46;
|
||||
x_44 = lean_ctor_get(x_25, 0);
|
||||
x_45 = lean_ctor_get(x_25, 1);
|
||||
lean_inc(x_45);
|
||||
lean_inc(x_44);
|
||||
lean_inc(x_43);
|
||||
lean_dec(x_24);
|
||||
x_45 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_45, 0, x_43);
|
||||
lean_ctor_set(x_45, 1, x_44);
|
||||
return x_45;
|
||||
lean_dec(x_25);
|
||||
x_46 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_46, 0, x_44);
|
||||
lean_ctor_set(x_46, 1, x_45);
|
||||
return x_46;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_46;
|
||||
lean_dec(x_12);
|
||||
uint8_t x_47;
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
lean_dec(x_4);
|
||||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_46 = !lean_is_exclusive(x_21);
|
||||
if (x_46 == 0)
|
||||
x_47 = !lean_is_exclusive(x_22);
|
||||
if (x_47 == 0)
|
||||
{
|
||||
return x_21;
|
||||
return x_22;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_47; lean_object* x_48; lean_object* x_49;
|
||||
x_47 = lean_ctor_get(x_21, 0);
|
||||
x_48 = lean_ctor_get(x_21, 1);
|
||||
lean_object* x_48; lean_object* x_49; lean_object* x_50;
|
||||
x_48 = lean_ctor_get(x_22, 0);
|
||||
x_49 = lean_ctor_get(x_22, 1);
|
||||
lean_inc(x_49);
|
||||
lean_inc(x_48);
|
||||
lean_inc(x_47);
|
||||
lean_dec(x_21);
|
||||
x_49 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_49, 0, x_47);
|
||||
lean_ctor_set(x_49, 1, x_48);
|
||||
return x_49;
|
||||
lean_dec(x_22);
|
||||
x_50 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_50, 0, x_48);
|
||||
lean_ctor_set(x_50, 1, x_49);
|
||||
return x_50;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_50;
|
||||
lean_dec(x_12);
|
||||
uint8_t x_51;
|
||||
lean_dec(x_13);
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
|
|
@ -1608,29 +1612,30 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_50 = !lean_is_exclusive(x_14);
|
||||
if (x_50 == 0)
|
||||
x_51 = !lean_is_exclusive(x_15);
|
||||
if (x_51 == 0)
|
||||
{
|
||||
return x_14;
|
||||
return x_15;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_51; lean_object* x_52; lean_object* x_53;
|
||||
x_51 = lean_ctor_get(x_14, 0);
|
||||
x_52 = lean_ctor_get(x_14, 1);
|
||||
lean_object* x_52; lean_object* x_53; lean_object* x_54;
|
||||
x_52 = lean_ctor_get(x_15, 0);
|
||||
x_53 = lean_ctor_get(x_15, 1);
|
||||
lean_inc(x_53);
|
||||
lean_inc(x_52);
|
||||
lean_inc(x_51);
|
||||
lean_dec(x_14);
|
||||
x_53 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_53, 0, x_51);
|
||||
lean_ctor_set(x_53, 1, x_52);
|
||||
return x_53;
|
||||
lean_dec(x_15);
|
||||
x_54 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_54, 0, x_52);
|
||||
lean_ctor_set(x_54, 1, x_53);
|
||||
return x_54;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_54;
|
||||
uint8_t x_55;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
|
|
@ -1638,29 +1643,30 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_54 = !lean_is_exclusive(x_11);
|
||||
if (x_54 == 0)
|
||||
x_55 = !lean_is_exclusive(x_12);
|
||||
if (x_55 == 0)
|
||||
{
|
||||
return x_11;
|
||||
return x_12;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_55; lean_object* x_56; lean_object* x_57;
|
||||
x_55 = lean_ctor_get(x_11, 0);
|
||||
x_56 = lean_ctor_get(x_11, 1);
|
||||
lean_object* x_56; lean_object* x_57; lean_object* x_58;
|
||||
x_56 = lean_ctor_get(x_12, 0);
|
||||
x_57 = lean_ctor_get(x_12, 1);
|
||||
lean_inc(x_57);
|
||||
lean_inc(x_56);
|
||||
lean_inc(x_55);
|
||||
lean_dec(x_11);
|
||||
x_57 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_57, 0, x_55);
|
||||
lean_ctor_set(x_57, 1, x_56);
|
||||
return x_57;
|
||||
lean_dec(x_12);
|
||||
x_58 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_58, 0, x_56);
|
||||
lean_ctor_set(x_58, 1, x_57);
|
||||
return x_58;
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
uint8_t x_58;
|
||||
uint8_t x_59;
|
||||
lean_dec(x_8);
|
||||
lean_dec(x_7);
|
||||
lean_dec(x_6);
|
||||
lean_dec(x_5);
|
||||
|
|
@ -1668,23 +1674,23 @@ lean_dec(x_4);
|
|||
lean_dec(x_3);
|
||||
lean_dec(x_2);
|
||||
lean_dec(x_1);
|
||||
x_58 = !lean_is_exclusive(x_9);
|
||||
if (x_58 == 0)
|
||||
x_59 = !lean_is_exclusive(x_10);
|
||||
if (x_59 == 0)
|
||||
{
|
||||
return x_9;
|
||||
return x_10;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_59; lean_object* x_60; lean_object* x_61;
|
||||
x_59 = lean_ctor_get(x_9, 0);
|
||||
x_60 = lean_ctor_get(x_9, 1);
|
||||
lean_object* x_60; lean_object* x_61; lean_object* x_62;
|
||||
x_60 = lean_ctor_get(x_10, 0);
|
||||
x_61 = lean_ctor_get(x_10, 1);
|
||||
lean_inc(x_61);
|
||||
lean_inc(x_60);
|
||||
lean_inc(x_59);
|
||||
lean_dec(x_9);
|
||||
x_61 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_61, 0, x_59);
|
||||
lean_ctor_set(x_61, 1, x_60);
|
||||
return x_61;
|
||||
lean_dec(x_10);
|
||||
x_62 = lean_alloc_ctor(1, 2, 0);
|
||||
lean_ctor_set(x_62, 0, x_60);
|
||||
lean_ctor_set(x_62, 1, x_61);
|
||||
return x_62;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -1707,18 +1713,19 @@ x_3 = lean_name_mk_string(x_1, x_2);
|
|||
return x_3;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7) {
|
||||
LEAN_EXPORT lean_object* l_Lean_Meta_generalize(lean_object* x_1, lean_object* x_2, lean_object* x_3, lean_object* x_4, lean_object* x_5, lean_object* x_6, lean_object* x_7, lean_object* x_8) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_8; lean_object* x_9; lean_object* x_10;
|
||||
x_8 = l_Lean_Meta_generalize___closed__2;
|
||||
lean_object* x_9; lean_object* x_10; lean_object* x_11;
|
||||
x_9 = l_Lean_Meta_generalize___closed__2;
|
||||
lean_inc(x_1);
|
||||
x_9 = lean_alloc_closure((void*)(l_Lean_Meta_generalize___lambda__3), 8, 3);
|
||||
lean_closure_set(x_9, 0, x_1);
|
||||
lean_closure_set(x_9, 1, x_8);
|
||||
lean_closure_set(x_9, 2, x_2);
|
||||
x_10 = l_Lean_Meta_withMVarContext___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_synthPendingImp___spec__1___rarg(x_1, x_9, x_3, x_4, x_5, x_6, x_7);
|
||||
return x_10;
|
||||
x_10 = lean_alloc_closure((void*)(l_Lean_Meta_generalize___lambda__3), 9, 4);
|
||||
lean_closure_set(x_10, 0, x_1);
|
||||
lean_closure_set(x_10, 1, x_9);
|
||||
lean_closure_set(x_10, 2, x_2);
|
||||
lean_closure_set(x_10, 3, x_3);
|
||||
x_11 = l_Lean_Meta_withMVarContext___at___private_Lean_Meta_SynthInstance_0__Lean_Meta_synthPendingImp___spec__1___rarg(x_1, x_10, x_4, x_5, x_6, x_7, x_8);
|
||||
return x_11;
|
||||
}
|
||||
}
|
||||
LEAN_EXPORT lean_object* l_Array_mapMUnsafe_map___at_Lean_Meta_generalize___spec__1___boxed(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
|
|
|
|||
770
stage0/stdlib/Lean/Meta/Tactic/Split.c
generated
770
stage0/stdlib/Lean/Meta/Tactic/Split.c
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Reference in a new issue