chore: update stage0
This commit is contained in:
parent
b25bb78e2a
commit
c054fa9a60
12 changed files with 3156 additions and 2600 deletions
69
stage0/src/Lean/Meta/DiscrTree.lean
generated
69
stage0/src/Lean/Meta/DiscrTree.lean
generated
|
|
@ -6,6 +6,7 @@ Authors: Leonardo de Moura
|
|||
import Lean.Meta.Basic
|
||||
import Lean.Meta.FunInfo
|
||||
import Lean.Meta.InferType
|
||||
import Lean.Meta.WHNF
|
||||
|
||||
namespace Lean.Meta.DiscrTree
|
||||
/-
|
||||
|
|
@ -160,12 +161,6 @@ private partial def pushArgsAux (infos : Array ParamInfo) : Nat → Expr → Arr
|
|||
pushArgsAux infos (i-1) f (todo.push a)
|
||||
| _, _, todo => return todo
|
||||
|
||||
private partial def whnfEta (e : Expr) : MetaM Expr := do
|
||||
let e ← whnf e
|
||||
match e.etaExpandedStrict? with
|
||||
| some e => whnfEta e
|
||||
| none => return e
|
||||
|
||||
/--
|
||||
Return true if `e` is one of the following
|
||||
- A nat literal (numeral)
|
||||
|
|
@ -226,13 +221,53 @@ def mkNoindexAnnotation (e : Expr) : Expr :=
|
|||
def hasNoindexAnnotation (e : Expr) : Bool :=
|
||||
annotation? `noindex e |>.isSome
|
||||
|
||||
private partial def whnfEta (e : Expr) : MetaM Expr := do
|
||||
let e ← whnf e
|
||||
match e.etaExpandedStrict? with
|
||||
| some e => whnfEta e
|
||||
| none => return e
|
||||
|
||||
/--
|
||||
Return `true` if `fn` is a "bad" key. That is, `pushArgs` would add `Key.other` or `Key.star`.
|
||||
We use this function when processing "root terms, and will avoid unfolding terms.
|
||||
Note that without this trick the pattern `List.map f ∘ List.map g` would be mapped into the key `Key.other`
|
||||
since the function composition `∘` would be unfolded and we would get `fun x => List.map g (List.map f x)`
|
||||
-/
|
||||
private def isBadKey (fn : Expr) : Bool :=
|
||||
match fn with
|
||||
| Expr.lit .. => false
|
||||
| Expr.const .. => false
|
||||
| Expr.fvar .. => false
|
||||
| Expr.forallE _ d b _ => b.hasLooseBVars
|
||||
| _ => true
|
||||
|
||||
/--
|
||||
Reduce `e` until we get an irreducible term (modulo current reducibility setting) or the resulting term
|
||||
is a bad key (see comment at `isBadKey`).
|
||||
We use this method instead of `whnfEta` for root terms at `pushArgs`. -/
|
||||
private partial def whnfUntilBadKey (e : Expr) : MetaM Expr := do
|
||||
let e ← step e
|
||||
match e.etaExpandedStrict? with
|
||||
| some e => whnfUntilBadKey e
|
||||
| none => return e
|
||||
where
|
||||
step (e : Expr) := do
|
||||
let e ← whnfCore e
|
||||
match (← unfoldDefinition? e) with
|
||||
| some e' => if isBadKey e' then return e else step e'
|
||||
| none => return e
|
||||
|
||||
/-- whnf for the discrimination tree module -/
|
||||
private def whnfDT (e : Expr) (root : Bool) : MetaM Expr :=
|
||||
if root then whnfUntilBadKey e else whnfEta e
|
||||
|
||||
/- Remark: we use `shouldAddAsStar` only for nested terms, and `root == false` for nested terms -/
|
||||
|
||||
private def pushArgs (root : Bool) (todo : Array Expr) (e : Expr) : MetaM (Key × Array Expr) := do
|
||||
if hasNoindexAnnotation e then
|
||||
return (Key.star, todo)
|
||||
else
|
||||
let e ← whnfEta e
|
||||
let e ← whnfDT e root
|
||||
let fn := e.getAppFn
|
||||
let push (k : Key) (nargs : Nat) : MetaM (Key × Array Expr) := do
|
||||
let info ← getFunInfoNArgs fn nargs
|
||||
|
|
@ -322,8 +357,8 @@ def insert [BEq α] (d : DiscrTree α) (e : Expr) (v : α) : MetaM (DiscrTree α
|
|||
let keys ← mkPath e
|
||||
return d.insertCore keys v
|
||||
|
||||
private def getKeyArgs (e : Expr) (isMatch : Bool) : MetaM (Key × Array Expr) := do
|
||||
let e ← whnfEta e
|
||||
private def getKeyArgs (e : Expr) (isMatch root : Bool) : MetaM (Key × Array Expr) := do
|
||||
let e ← whnfDT e root
|
||||
match e.getAppFn with
|
||||
| Expr.lit v _ => return (Key.lit v, #[])
|
||||
| Expr.const c _ _ =>
|
||||
|
|
@ -365,11 +400,11 @@ private def getKeyArgs (e : Expr) (isMatch : Bool) : MetaM (Key × Array Expr) :
|
|||
| _ =>
|
||||
return (Key.other, #[])
|
||||
|
||||
private abbrev getMatchKeyArgs (e : Expr) : MetaM (Key × Array Expr) :=
|
||||
getKeyArgs e (isMatch := true)
|
||||
private abbrev getMatchKeyArgs (e : Expr) (root : Bool) : MetaM (Key × Array Expr) :=
|
||||
getKeyArgs e (isMatch := true) (root := root)
|
||||
|
||||
private abbrev getUnifyKeyArgs (e : Expr) : MetaM (Key × Array Expr) :=
|
||||
getKeyArgs e (isMatch := false)
|
||||
private abbrev getUnifyKeyArgs (e : Expr) (root : Bool) : MetaM (Key × Array Expr) :=
|
||||
getKeyArgs e (isMatch := false) (root := root)
|
||||
|
||||
private def getStarResult (d : DiscrTree α) : Array α :=
|
||||
let result : Array α := Array.mkEmpty initCapacity
|
||||
|
|
@ -383,7 +418,7 @@ private abbrev findKey (cs : Array (Key × Trie α)) (k : Key) : Option (Key ×
|
|||
partial def getMatch (d : DiscrTree α) (e : Expr) : MetaM (Array α) :=
|
||||
withReducible do
|
||||
let result := getStarResult d
|
||||
let (k, args) ← getMatchKeyArgs e
|
||||
let (k, args) ← getMatchKeyArgs e (root := true)
|
||||
match k with
|
||||
| Key.star => return result
|
||||
| _ =>
|
||||
|
|
@ -402,7 +437,7 @@ where
|
|||
let e := todo.back
|
||||
let todo := todo.pop
|
||||
let first := cs[0] /- Recall that `Key.star` is the minimal key -/
|
||||
let (k, args) ← getMatchKeyArgs e
|
||||
let (k, args) ← getMatchKeyArgs e (root := false)
|
||||
/- We must always visit `Key.star` edges since they are wildcards.
|
||||
Thus, `todo` is not used linearly when there is `Key.star` edge
|
||||
and there is an edge for `k` and `k != Key.star`. -/
|
||||
|
|
@ -427,7 +462,7 @@ where
|
|||
|
||||
partial def getUnify (d : DiscrTree α) (e : Expr) : MetaM (Array α) :=
|
||||
withReducible do
|
||||
let (k, args) ← getUnifyKeyArgs e
|
||||
let (k, args) ← getUnifyKeyArgs e (root := true)
|
||||
match k with
|
||||
| Key.star => d.root.foldlM (init := #[]) fun result k c => process k.arity #[] c result
|
||||
| _ =>
|
||||
|
|
@ -451,7 +486,7 @@ where
|
|||
else
|
||||
let e := todo.back
|
||||
let todo := todo.pop
|
||||
let (k, args) ← getUnifyKeyArgs e
|
||||
let (k, args) ← getUnifyKeyArgs e (root := false)
|
||||
let visitStar (result : Array α) : MetaM (Array α) :=
|
||||
let first := cs[0]
|
||||
if first.1 == Key.star then
|
||||
|
|
|
|||
2
stage0/src/Lean/Meta/WHNF.lean
generated
2
stage0/src/Lean/Meta/WHNF.lean
generated
|
|
@ -200,7 +200,7 @@ end
|
|||
=========================== -/
|
||||
|
||||
/-- Auxiliary combinator for handling easy WHNF cases. It takes a function for handling the "hard" cases as an argument -/
|
||||
@[specialize] private partial def whnfEasyCases (e : Expr) (k : Expr → MetaM Expr) : MetaM Expr := do
|
||||
@[specialize] partial def whnfEasyCases (e : Expr) (k : Expr → MetaM Expr) : MetaM Expr := do
|
||||
match e with
|
||||
| Expr.forallE .. => return e
|
||||
| Expr.lam .. => return e
|
||||
|
|
|
|||
4
stage0/stdlib/Lean/Elab/App.c
generated
4
stage0/stdlib/Lean/Elab/App.c
generated
|
|
@ -299,7 +299,6 @@ lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_propagateExpectedTypeFo
|
|||
lean_object* l___private_Lean_Meta_Basic_0__Lean_Meta_forallTelescopeReducingImp___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_propagateExpectedType___closed__9;
|
||||
lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_toMessageData_match__1___rarg(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_ElabAppArgs_normalizeFunType(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___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_object*);
|
||||
lean_object* l_Array_foldlMUnsafe_fold___at___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValLoop___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*);
|
||||
|
|
@ -522,6 +521,7 @@ lean_object* l_List_find_x3f___rarg(lean_object*, lean_object*);
|
|||
static lean_object* l_Std_Range_forIn_loop___at___private_Lean_Elab_App_0__Lean_Elab_Term_addLValArg___spec__1___closed__3;
|
||||
static lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_resolveLValAux___closed__2;
|
||||
static lean_object* l_Lean_Elab_Term_elabWithoutExpectedTypeAttr___lambda__5___closed__1;
|
||||
lean_object* l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_getParentStructures(lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Elab_App_0__Lean_Elab_Term_elabAppFnId_toLVals_match__1___rarg___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_elabWithoutExpectedTypeAttr___lambda__5___boxed(lean_object*);
|
||||
|
|
@ -15096,7 +15096,7 @@ lean_inc(x_9);
|
|||
lean_inc(x_8);
|
||||
lean_inc(x_7);
|
||||
lean_inc(x_6);
|
||||
x_11 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_3, x_6, x_7, x_8, x_9, x_10);
|
||||
x_11 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_3, x_6, x_7, x_8, x_9, x_10);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
{
|
||||
lean_object* x_12;
|
||||
|
|
|
|||
4
stage0/stdlib/Lean/Elab/Do.c
generated
4
stage0/stdlib/Lean/Elab/Do.c
generated
|
|
@ -541,7 +541,6 @@ lean_object* l_Lean_Elab_Term_Do_addFreshJP___boxed(lean_object*, lean_object*,
|
|||
lean_object* l_Lean_Elab_Term_Do_ToTerm_mkIte___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Elab_Do_0__Lean_Elab_Term_Do_mkPureUnit___closed__2;
|
||||
lean_object* l_Lean_Elab_Term_Do_ToCodeBlock_doSeqToCode___lambda__1(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___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_throwError___at_Lean_Elab_Term_Do_ToCodeBlock_doTryToCode___spec__1(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_withMacroExpansion___rarg(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_Do_0__Lean_Elab_Term_Do_expandDoIf_x3f___closed__5;
|
||||
|
|
@ -939,6 +938,7 @@ lean_object* l_Lean_Syntax_getNumArgs(lean_object*);
|
|||
lean_object* l_Lean_Elab_Term_Do_getDoLetRecVars(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Lean_Elab_Term_Do_ToTerm_Kind_isRegular(uint8_t);
|
||||
lean_object* l_Array_anyMUnsafe_any___at_Lean_Elab_Term_Do_extendUpdatedVarsAux_update___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Elab_Term_Do_concat_match__1___rarg(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Elab_Term_Do_ToTerm_continueToTerm___closed__12;
|
||||
lean_object* l_Lean_Elab_Term_Do_pullExitPoints(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -2818,7 +2818,7 @@ lean_inc(x_5);
|
|||
lean_inc(x_4);
|
||||
lean_inc(x_3);
|
||||
lean_inc(x_2);
|
||||
x_11 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_3, x_4, x_5, x_6, x_10);
|
||||
x_11 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_3, x_4, x_5, x_6, x_10);
|
||||
if (lean_obj_tag(x_11) == 0)
|
||||
{
|
||||
lean_object* x_12; lean_object* x_13; uint8_t x_14;
|
||||
|
|
|
|||
5256
stage0/stdlib/Lean/Meta/DiscrTree.c
generated
5256
stage0/stdlib/Lean/Meta/DiscrTree.c
generated
File diff suppressed because it is too large
Load diff
14
stage0/stdlib/Lean/Meta/ExprDefEq.c
generated
14
stage0/stdlib/Lean/Meta/ExprDefEq.c
generated
|
|
@ -316,7 +316,6 @@ static size_t l_Std_PersistentHashMap_containsAux___at___private_Lean_Meta_ExprD
|
|||
lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_cacheResult___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_Meta_CheckAssignment_initFn____x40_Lean_Meta_ExprDefEq___hyg_2814____closed__2;
|
||||
static lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_unstuckMVar___closed__7;
|
||||
lean_object* l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqProofIrrel_match__1___rarg(uint8_t, lean_object*, lean_object*, lean_object*);
|
||||
uint8_t l_Array_anyMUnsafe_any___at_Lean_Meta_CheckAssignment_checkMVar___spec__15(lean_object*, lean_object*, size_t, size_t);
|
||||
lean_object* l_Lean_Meta_CheckAssignment_assignToConstFun___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -554,6 +553,7 @@ lean_object* l_Std_HashMapImp_insert___at_Lean_MetavarContext_instantiateExprMVa
|
|||
lean_object* l_Array_anyMUnsafe_any___at_Lean_Meta_CheckAssignment_checkMVar___spec__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_CheckAssignment_addAssignmentInfo___closed__3;
|
||||
lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_checkTypesAndAssign___lambda__1___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_Meta_CheckAssignmentQuick_check_visit_match__1___rarg(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___private_Std_Data_PersistentArray_0__Std_PersistentArray_foldlMAux___at_Lean_Meta_CheckAssignment_checkMVar___spec__47___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l___private_Lean_Meta_ExprDefEq_0__Lean_Meta_isDefEqQuick_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -64508,7 +64508,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_1);
|
||||
x_63 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_62);
|
||||
x_63 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_62);
|
||||
if (lean_obj_tag(x_63) == 0)
|
||||
{
|
||||
lean_object* x_64; lean_object* x_65; lean_object* x_66;
|
||||
|
|
@ -64522,7 +64522,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_2);
|
||||
x_66 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_65);
|
||||
x_66 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_65);
|
||||
if (lean_obj_tag(x_66) == 0)
|
||||
{
|
||||
lean_object* x_67; lean_object* x_68; uint8_t x_69;
|
||||
|
|
@ -65125,7 +65125,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_1);
|
||||
x_181 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_180);
|
||||
x_181 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_180);
|
||||
if (lean_obj_tag(x_181) == 0)
|
||||
{
|
||||
lean_object* x_182; lean_object* x_183; lean_object* x_184;
|
||||
|
|
@ -65139,7 +65139,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_2);
|
||||
x_184 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_183);
|
||||
x_184 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_183);
|
||||
if (lean_obj_tag(x_184) == 0)
|
||||
{
|
||||
lean_object* x_185; lean_object* x_186; uint8_t x_187;
|
||||
|
|
@ -65759,7 +65759,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_1);
|
||||
x_304 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_303);
|
||||
x_304 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_1, x_4, x_5, x_6, x_7, x_303);
|
||||
if (lean_obj_tag(x_304) == 0)
|
||||
{
|
||||
lean_object* x_305; lean_object* x_306; lean_object* x_307;
|
||||
|
|
@ -65773,7 +65773,7 @@ lean_inc(x_6);
|
|||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
lean_inc(x_2);
|
||||
x_307 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_306);
|
||||
x_307 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_2, x_4, x_5, x_6, x_7, x_306);
|
||||
if (lean_obj_tag(x_307) == 0)
|
||||
{
|
||||
lean_object* x_308; lean_object* x_309; uint8_t x_310;
|
||||
|
|
|
|||
2
stage0/stdlib/Lean/Meta/Instances.c
generated
2
stage0/stdlib/Lean/Meta/Instances.c
generated
|
|
@ -1880,7 +1880,7 @@ _start:
|
|||
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
||||
x_1 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addInstanceEntry___spec__1___closed__2;
|
||||
x_2 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addInstanceEntry___spec__1___closed__3;
|
||||
x_3 = lean_unsigned_to_nat(310u);
|
||||
x_3 = lean_unsigned_to_nat(345u);
|
||||
x_4 = lean_unsigned_to_nat(23u);
|
||||
x_5 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addInstanceEntry___spec__1___closed__4;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
|
|||
2
stage0/stdlib/Lean/Meta/Tactic/Simp/SimpLemmas.c
generated
2
stage0/stdlib/Lean/Meta/Tactic/Simp/SimpLemmas.c
generated
|
|
@ -2218,7 +2218,7 @@ _start:
|
|||
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
||||
x_1 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addSimpLemmaEntry___spec__1___closed__2;
|
||||
x_2 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addSimpLemmaEntry___spec__1___closed__3;
|
||||
x_3 = lean_unsigned_to_nat(310u);
|
||||
x_3 = lean_unsigned_to_nat(345u);
|
||||
x_4 = lean_unsigned_to_nat(23u);
|
||||
x_5 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_addSimpLemmaEntry___spec__1___closed__4;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
|
|||
2
stage0/stdlib/Lean/Meta/UnificationHint.c
generated
2
stage0/stdlib/Lean/Meta/UnificationHint.c
generated
|
|
@ -2650,7 +2650,7 @@ _start:
|
|||
lean_object* x_1; lean_object* x_2; lean_object* x_3; lean_object* x_4; lean_object* x_5; lean_object* x_6;
|
||||
x_1 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_UnificationHints_add___spec__1___closed__2;
|
||||
x_2 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_UnificationHints_add___spec__1___closed__3;
|
||||
x_3 = lean_unsigned_to_nat(310u);
|
||||
x_3 = lean_unsigned_to_nat(345u);
|
||||
x_4 = lean_unsigned_to_nat(23u);
|
||||
x_5 = l_Lean_Meta_DiscrTree_insertCore___at_Lean_Meta_UnificationHints_add___spec__1___closed__4;
|
||||
x_6 = l___private_Init_Util_0__mkPanicMessageWithDecl(x_1, x_2, x_3, x_4, x_5);
|
||||
|
|
|
|||
364
stage0/stdlib/Lean/Meta/WHNF.c
generated
364
stage0/stdlib/Lean/Meta/WHNF.c
generated
File diff suppressed because it is too large
Load diff
4
stage0/stdlib/Lean/ParserCompiler.c
generated
4
stage0/stdlib/Lean/ParserCompiler.c
generated
|
|
@ -187,7 +187,6 @@ lean_object* l_Lean_ParserCompiler_CombinatorAttribute_setDeclFor(lean_object*,
|
|||
lean_object* l_Lean_ParserCompiler_compileParserExpr___rarg___lambda__27(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldrMUnsafe_fold___at_Lean_ParserCompiler_compileParserExpr___spec__28(lean_object*);
|
||||
static lean_object* l_Lean_ParserCompiler_compileCategoryParser___rarg___closed__29;
|
||||
lean_object* l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Lean_KernelException_toMessageData(lean_object*, lean_object*);
|
||||
static lean_object* l_Lean_ParserCompiler_compileCategoryParser___rarg___closed__13;
|
||||
lean_object* l_Lean_ParserCompiler_compileParserExpr_match__5___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -303,6 +302,7 @@ lean_object* l_Lean_ParserCompiler_compileParserExpr___rarg___lambda__7(lean_obj
|
|||
lean_object* l_Lean_ParserCompiler_compileParserExpr___rarg___lambda__28___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* l_Lean_Expr_getAppNumArgsAux(lean_object*, lean_object*);
|
||||
lean_object* l_Lean_ParserCompiler_compileParserExpr___rarg___lambda__45(lean_object*, lean_object*, uint8_t, 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_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Array_foldrMUnsafe_fold___at_Lean_ParserCompiler_compileParserExpr___spec__23(lean_object*);
|
||||
lean_object* l_Array_foldrMUnsafe_fold___at_Lean_ParserCompiler_compileParserExpr___spec__48(lean_object*);
|
||||
lean_object* l_Lean_ParserCompiler_compileParserExpr___rarg___lambda__10___boxed(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -20621,7 +20621,7 @@ lean_inc(x_7);
|
|||
lean_inc(x_6);
|
||||
lean_inc(x_5);
|
||||
lean_inc(x_4);
|
||||
x_9 = l___private_Lean_Meta_WHNF_0__Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_3, x_4, x_5, x_6, x_7, x_8);
|
||||
x_9 = l_Lean_Meta_whnfEasyCases___at_Lean_Meta_whnfCore___spec__2(x_3, x_4, x_5, x_6, x_7, x_8);
|
||||
if (lean_obj_tag(x_9) == 0)
|
||||
{
|
||||
lean_object* x_10;
|
||||
|
|
|
|||
33
stage0/stdlib/Std/Data/RBMap.c
generated
33
stage0/stdlib/Std/Data/RBMap.c
generated
|
|
@ -83,6 +83,7 @@ lean_object* lean_nat_add(lean_object*, lean_object*);
|
|||
lean_object* l_Std_RBMap_max_x21___rarg___boxed(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBMap_instReprRBMap___boxed(lean_object*, lean_object*, lean_object*);
|
||||
static lean_object* l_Std_RBMap_find_x21___rarg___closed__3;
|
||||
lean_object* l_Std_RBMap_max_x21_match__1___rarg(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_balRight_match__2___rarg(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_balance2___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_revFold___rarg(lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -278,6 +279,7 @@ lean_object* l_Std_RBMap_foldM(lean_object*, lean_object*, lean_object*, lean_ob
|
|||
lean_object* l_Std_RBNode_fold___rarg(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBMap_isEmpty(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_lowerBound_match__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBMap_max_x21_match__1(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBNode_fold(lean_object*, lean_object*, lean_object*);
|
||||
lean_object* l_Std_RBMap_max___rarg(lean_object*);
|
||||
lean_object* l_Std_RBNode_foldM___at_Std_RBMap_forM___spec__1___rarg(lean_object*, lean_object*, lean_object*, lean_object*);
|
||||
|
|
@ -21876,6 +21878,37 @@ lean_dec(x_3);
|
|||
return x_4;
|
||||
}
|
||||
}
|
||||
lean_object* l_Std_RBMap_max_x21_match__1___rarg(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
if (lean_obj_tag(x_1) == 0)
|
||||
{
|
||||
lean_object* x_4; lean_object* x_5;
|
||||
lean_dec(x_2);
|
||||
x_4 = lean_box(0);
|
||||
x_5 = lean_apply_1(x_3, x_4);
|
||||
return x_5;
|
||||
}
|
||||
else
|
||||
{
|
||||
lean_object* x_6; lean_object* x_7;
|
||||
lean_dec(x_3);
|
||||
x_6 = lean_ctor_get(x_1, 0);
|
||||
lean_inc(x_6);
|
||||
lean_dec(x_1);
|
||||
x_7 = lean_apply_1(x_2, x_6);
|
||||
return x_7;
|
||||
}
|
||||
}
|
||||
}
|
||||
lean_object* l_Std_RBMap_max_x21_match__1(lean_object* x_1, lean_object* x_2, lean_object* x_3) {
|
||||
_start:
|
||||
{
|
||||
lean_object* x_4;
|
||||
x_4 = lean_alloc_closure((void*)(l_Std_RBMap_max_x21_match__1___rarg), 3, 0);
|
||||
return x_4;
|
||||
}
|
||||
}
|
||||
static lean_object* _init_l_Std_RBMap_max_x21___rarg___closed__1() {
|
||||
_start:
|
||||
{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue